這是我第一次嘗試用 LaTeX 繪圖。我設法繪製了條形圖。我想顯示兩組數值的平均值。我打算在長條圖上放置一個水平條並讓它指示平均值。不幸的是,繪圖並沒有與縮放或類似的功能結合。目前,我必須更改縮放/標籤中的某些內容,所有內容都將失去其位置。是否有繪製與基礎圖表的資料值相對應的線條(或箭頭)的最佳實踐方法?
答案1
我假設您在a 的環境tikz
\draw
中使用 a 時遇到問題。在這種情況下,您需要使用座標系,如紅色虛線所示:\pgfplot
axis
axis cs
筆記:
- 若要為該行新增標籤,您可以使用 a
node
作為繪圖的一部分。 - 標籤的位置覆蓋在沿路徑移動標籤。
- 感謝傑克的回答將平移應用於(目前軸。原點左側),下面的第二個 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}