プロットに線を描いてラベルを付けますか?

プロットに線を描いてラベルを付けますか?

私は LaTeX でプロットする初めての冒険にいます。なんとか棒グラフをプロットできました。平均を表示したい値のグループが 2 つあります。棒グラフの上に水平バーを配置して、平均値を表示させるつもりです。残念ながら、描画はスケーリングなどと連動していません。スケーリング/ラベル付けで何かを変更しなければならない瞬間に、すべてがずれてしまいます。基になるグラフのデータ値に対応する線 (または矢印) を描くベスト プラクティスの方法はありますか?

答え1

の環境tikz \draw内でを使用する際に問題が発生していると想定しています。この場合、赤い点線で示す座標系を使用する必要があります。\pgfplotaxisaxis cs

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

ノート:

  • この線にラベルを追加するには、node描画の一部として を使用できます。
  • ラベルの位置については、パスに沿ってラベルを移動する
  • ジェイクの回答に感謝しますシフトを適用 (現在の軸.原点の左)、以下の 2 番目の MWE は、最小値と最大x値を指定する必要がなく動作するはずです。定義yでは値のみを指定する必要があります\VerticalPos

コード: 最小値と最大値の両方のx値を指定します

\documentclass{article}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}
    \addplot {x*x};
    \draw [ultra thick, dotted, draw=red] 
        (axis cs: -6,12) -- (axis cs: 6,12)
        node[pos=0.5, above] {$y=12$};
\end{axis}
\end{tikzpicture}
\end{document}

コード: 最小値と最大値の両方のx値を自動的に決定する

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

\begin{document}
\begin{tikzpicture}
\begin{axis}
    \addplot {x*x};
    
    \newcommand*{\VerticalPos}{12}% Desired vertical postion
    \coordinate (Left)  at ($(current axis.left of origin) +(axis direction cs: 0,\VerticalPos)$);
    \coordinate (Right) at ($(current axis.right of origin)+(axis direction cs: 0,\VerticalPos)$);
    
    \draw [ultra thick, dotted, draw=red] 
        (Left) -- (Right)
        node[pos=0.5, above] {$y=\VerticalPos$};
\end{axis}
\end{tikzpicture}
\end{document}

関連情報