私は LaTeX でプロットする初めての冒険にいます。なんとか棒グラフをプロットできました。平均を表示したい値のグループが 2 つあります。棒グラフの上に水平バーを配置して、平均値を表示させるつもりです。残念ながら、描画はスケーリングなどと連動していません。スケーリング/ラベル付けで何かを変更しなければならない瞬間に、すべてがずれてしまいます。基になるグラフのデータ値に対応する線 (または矢印) を描くベスト プラクティスの方法はありますか?
答え1
の環境tikz
\draw
内でを使用する際に問題が発生していると想定しています。この場合、赤い点線で示す座標系を使用する必要があります。\pgfplot
axis
axis 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}