如何使用 在图形中设置两个不同的背景pgfplots
? 在我的例子中,我需要为 x<5 设置彩色背景,为 x>5 设置不同的背景。
答案1
您可以使用rel
ative简单地绘制一个矩形axis cs
。根据需要更改坐标。请注意,下端(西南)是{rel axis cs:0,0)}
,上端(东北)是{rel axis cs:1,1}
。
\documentclass{article}
\usepackage{pgfplots}
\usepackage[graphics,tightpage,active]{preview}
\PreviewEnvironment{tikzpicture}
\pgfplotsset{compat=1.9}
\usetikzlibrary{backgrounds}
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
ymin=-1,%
ymax=1,%
grid=both,%
%axis on top
]
\begin{scope}[on background layer]
\fill[green,opacity=1] ({rel axis cs:0,0}) rectangle ({rel axis cs:0.5,1});
\fill[red,opacity=1] ({rel axis cs:0.5,0}) rectangle ({rel axis cs:1,1});
\end{scope}
\addplot[domain=-360:360, blue , very thick, smooth]{sin(x)};
\end{axis}
\end{tikzpicture}
\end{document}
有background
图层的话,opacity
无需使用。
答案2
在我的博士论文我只是在想要突出显示的区域的图后面画了一个板。可能有更简单的方法,但最终我发现这很简单。本质上,它归结为绘制一个比所示轴稍大的矩形,如下面的最小示例所示:
\documentclass{article}
\usepackage{pgfplots}
\usepackage[graphics,tightpage,active]{preview}
\PreviewEnvironment{tikzpicture}
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
ymin=-1,%
ymax=1,%
grid=both,%
]
\addplot [draw=red,fill=red, semitransparent]
coordinates {(55,-1.1) (55,1.1) (333,1.1) (333,-1.1)};
\addplot [draw=green,fill=green, semitransparent]
coordinates {(-360,-1.1) (-360,1.1) (55,1.1) (55,-1.1)};
\addplot[domain=-360:360, blue , very thick, smooth]{sin(x)};
\end{axis}
\end{tikzpicture}
\end{document}
我确信您可以弄清楚要进行什么改变才能使彩色区域达到您想要的程度。
答案3
使用 PSTrick 只是为了好玩!
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-plot}
\psset{algebraic,plotpoints=200}
\def\f{x*sin(3*x)}
\begin{document}
\begin{pspicture}(-4,-4)(4.5,4.5)
\psframe*[linecolor=red](-4,-4)(-2,4)%
\psframe*[linecolor=green](-2,-4)(4,4)%
\psaxes{->}(0,0)(-4,-4)(4.25,4.25)[$x$,0][$y$,90]%
\psplot[linecolor=blue,linewidth=2pt]{-4}{4}{\f}%
\end{pspicture}
\end{document}