我试图改进解决方案在图中画线并给它们贴上标签?使用 Jake 的答案如何在 PGFplots 轴环境中访问 \xmin、\xmax、\ymin、\ymax。因此,杰克的答案产生了棕色虚线(x 轴),其中
(current axis.left of origin) -- (current axis.right of origin)
我认为,只需使用 的tikz
库calc
,我就可以调整水平线的垂直位置。y=12
例如,如果我想在 处设置一条水平线,我只需使用
($(current axis.left of origin)+(axis cs: 0,12)$) -- ($(current axis.right of origin)+(axis cs: 0,12)$)
我已经在其中应用了 a,+ (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}