在 pgfplots 中使用 tikz 宏吗?

在 pgfplots 中使用 tikz 宏吗?

由于axis环境是在一个范围内,tikzpicture所以我认为您可以\draw在该axis环境中使用常用的命令。

我很困惑为什么下面的代码会在轴外产生红线?

在此处输入图片描述

此外,如果你只注释掉这个\addplot调用,两个都红线和蓝线没有画出来。

问题:

  1. 为什么红线画在轴环境之外?
  2. 有没有办法使用环境\draw中的命令axis在坐标之间画线axis cs
  3. 为什么注释掉会\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

  1. 正如 Gonzalo Medina 在他的评论中所说,本例中的 y 轴从 1.2 开始,因此从 到0.2,0.2的一条线0.6,0.8正确地位于轴下方。轴限值只能通过\addplot命令自动确定,而不能通过 TikZ 命令(例如)确定\draw
  2. 使用命令的方式\draw是在轴上画线的正确方法,但您必须在必要时通过使用、等手动调整轴限制(如在您的示例中一样xminxmax
  3. 如果\addplot在轴上未找到任何命令,PGFplots 将返回到标准轴限制并仅绘制轴,但不执行命令\draw。在这种情况下,您还应该手动调整所有轴限制。或者,如果您对标准轴限制(x 和 y 为 0 到 1)感到满意,您可以使用键after end axis/.code来执行\draw命令。

相关内容