由于axis
环境是在一个范围内,tikzpicture
所以我认为您可以\draw
在该axis
环境中使用常用的命令。
我很困惑为什么下面的代码会在轴外产生红线?
此外,如果你只注释掉这个\addplot
调用,两个都红线和蓝线没有画出来。
问题:
- 为什么红线画在轴环境之外?
- 有没有办法使用环境
\draw
中的命令axis
在坐标之间画线axis cs
? - 为什么注释掉会
\addplot
导致不画线?
代码:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[clip=false,ultra thick]
\draw [red] (axis cs: 0.2,0.2) -- (axis cs: 0.6,0.8);
\addplot [mark=*,blue] coordinates{( 0.2,1.2) (0.6,1.8)};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
- 正如 Gonzalo Medina 在他的评论中所说,本例中的 y 轴从 1.2 开始,因此从 到
0.2,0.2
的一条线0.6,0.8
正确地位于轴下方。轴限值只能通过\addplot
命令自动确定,而不能通过 TikZ 命令(例如)确定\draw
。 - 使用命令的方式
\draw
是在轴上画线的正确方法,但您必须在必要时通过使用、等手动调整轴限制(如在您的示例中一样xmin
)xmax
。 - 如果
\addplot
在轴上未找到任何命令,PGFplots 将返回到标准轴限制并仅绘制轴,但不执行命令\draw
。在这种情况下,您还应该手动调整所有轴限制。或者,如果您对标准轴限制(x 和 y 为 0 到 1)感到满意,您可以使用键after end axis/.code
来执行\draw
命令。