这是我第一次使用 LaTeX 绘图。我设法绘制了条形图。我有两组值,我想显示它们的平均值。我打算在条形图上放一个水平条,让它指示平均值。不幸的是,绘图与缩放或类似功能无关。当我必须在缩放/标签中更改某些内容时,一切都会变得乱七八糟。有没有绘制与底层图表的数据值相对应的线条(或箭头)的最佳实践方法?
答案1
我假设您在的环境tikz
\draw
中使用 时遇到了麻烦。在这种情况下,您需要使用坐标系,如红色虚线所示:\pgfplot
axis
axis cs
笔记:
- 要给这条线添加标签,您可以使用
node
作为绘图的一部分。 - 标签的定位包含在沿路径移动标签。
- 感谢 Jake 的回答将移位应用于(当前轴.原点左侧),下面的第二个 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}