有没有办法使用轴坐标绘制一些东西(axis cs:x,y)
前轴线和网格是怎么画出来的?
也就是说,我想用 tikz 绘制矩形,为绘图的不同区域提供不同的背景,但是,我在文档中找到的唯一内容似乎是before end axis
可以使用具有轴 cs 的自己的 tikz 绘图开始的最早时间点。
答案1
正如马克正确指出的那样,您可以使用pgflayers
。他们提供的正是工具!
然而,我想向您展示解决这个问题的另一种方法,由于它是在轴坐标系中,所以这也可以简化这个过程。
基本上你需要知道的是,你可以background
使用以下键访问样式:axis background
。一旦你有了这个,你就可以应用TiKz
你想要的一切!我们很幸运,在绘制背景之前计算了轴环境。
您应该知道,您可以使用以下键轻松访问当前图片:path picture
。通过将其与postaction
或结合使用,preaction
您几乎可以安全回家!:)
我在这里所做的是访问axis cs
,然后添加适当的矩形。您可以在这里自由地做任何您想做的事情。添加节点、绘制任意东西等。但是,如果您想注释某个兴趣点,我们鼓励您通过其他方式进行注释。
但请注意,picture bounding box
由于轴校正,这并不正确,因此您不应使用它。
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[axis background/.style={%
postaction={ % Lets you draw after the background is drawn
path picture={ % access the background picture
\fill[opacity=0.5,blue] (axis cs:-5,0) rectangle (axis cs:-4,2e4);
\fill[opacity=0.5,red] (axis cs:-5,2e4) rectangle (axis cs:-4,6e4);
\fill[opacity=0.5,green] (axis cs:-4,.8e4) rectangle (axis cs:5,6e4);
}
},shade,top color=gray,bottom color=white
},legend style={fill=white}]
\addplot {exp(-2*x)};
\addplot {exp(-2.2*x)};
\legend{$e^{-x}$,$e^{-4x}$}
\end{axis}
\end{tikzpicture}
\end{document}
其结果为: