シフトを適用 (現在の軸.原点の左)

シフトを適用 (現在の軸.原点の左)

私は解決策を改善しようとしていたプロットに線を描いてラベルを付けますか?ジェイクの答えを使ってPGFplots 軸環境から \xmin、\xmax、\ymin、\ymax にアクセスする方法ジェイクの答えは茶色の点線(x軸)で、

(current axis.left of origin) -- (current axis.right of origin)

tikzcalcライブラリを使えば、水平線の垂直位置を調整できると思いました。y=12例えば、水平線を にしたい場合は、次のようにします。

($(current axis.left of origin)+(axis cs: 0,12)$) -- ($(current axis.right of origin)+(axis cs: 0,12)$)

+ (axis cs: 0,12)ここで、他の座標にも同じことを適用しました。

まあ、それは理論的には素晴らしいのですが、うまくいきません。代わりに、赤い破線が生成されます (これは目的の線の半分だけです)。

ここに画像の説明を入力してください

ノート:

  • 座標計算を行う代わりにshift={(axis cs: 0,12)}オプションを適用することも試みましたが、出力には影響がありませんでした。

コード:

\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}
\begin{axis}
    \addplot {x*x};
    
    \draw [ultra thick, dotted, draw=brown] 
        (current axis.left of origin) -- 
        (current axis.right of origin);
        
    \draw [ultra thick, dashed, draw=red] 
        ($(current axis.left of origin) +(axis cs: 0,12)$) -- 
        ($(current axis.right of origin)+(axis cs: 0,12)$);
\end{axis}
\end{tikzpicture}
\end{document}

答え1

理由はよく分かりませんが、私にはこれが効きます

\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{calc}

\pgfplotsset{compat=1.10}

\begin{document}
\begin{tikzpicture}
\begin{axis}
    \addplot {x*x};

    \draw [ultra thick, dotted, draw=brown] 
        (current axis.left of origin) -- 
        (current axis.right of origin);

    \draw [ultra thick, draw=red] 
        ($(current axis.left of origin)-(axis cs:0,-12)$) -- 
        ($(current axis.right of origin)+(axis cs:0,12)$);
\end{axis}
\end{tikzpicture}
\end{document}

ここに画像の説明を入力してください

関連情報