当比例和设置层一起使用时,pgfplots 中会出现奇怪的结果

当比例和设置层一起使用时,pgfplots 中会出现奇怪的结果

我在 pgfplots 中使用scale和时遇到问题。set layers

我必须使用,set layers因为我希望一个图中的几条曲线彼此重叠(这在下面的示例代码中并不明显),并且我想使用 scale 使图和标签更小。如果运行我的示例代码,您可以从第一个图中看到,如果使用set layers和,一切都很好scale=1。如果scale=0.8不使用set layers,则一切都按预期工作(第二张图;在我的实际图中,曲线不再彼此重叠)。但如果使用scale=0.8set layers,就会产生奇怪的结果。图变小了,但标签没变。而且图例的位置也不对。

谁能告诉我我做错了什么?我真的必须set layers一起使用scale,这样我的真实情节才能看起来不错。

这是我使用的代码:

\documentclass{report}
\usepackage{tikz} 
\usepackage{pgfplots}
\pgfplotsset{compat=1.7}
\begin{filecontents}{TableQuestion.txt}
xValue1 yValue1     xValue2 yValue2 
1   0     1   0.2
2   1        2   0.9
3   1.5   3   1.6
4   0.5   4   0.4 
\end{filecontents}
\begin{document}
\begin{tikzpicture}[scale=1]%everything ok
\begin{axis}[
set layers,
xlabel=$x$,ylabel=$y$,legend pos=north west,legend cell align=left]%
\addplot[color=blue,
mark=*,mark layer=like plot]%
table[x=xValue1,y=yValue1] {TableQuestion.txt};%
\addplot[color=red,
mark=none]%
table[x=xValue2,y=yValue2] {TableQuestion.txt};%
\legend{first entry, second entry}
\end{axis}%
\end{tikzpicture}%
\vspace{1cm}
\begin{tikzpicture}[scale=0.8]%everything ok
\begin{axis}[
%set layers,
xlabel=$x$,ylabel=$y$,legend pos=north west,legend cell align=left]%
\addplot[color=blue,
mark=*,mark layer=like plot]%
table[x=xValue1,y=yValue1] {TableQuestion.txt};%
\addplot[color=red,
mark=none]%
table[x=xValue2,y=yValue2] {TableQuestion.txt};%
\legend{first entry, second entry}
\end{axis}%
\end{tikzpicture}%
\vspace{1cm}
\begin{tikzpicture}[scale=0.8]%odd behaviour
\begin{axis}[
set layers, 
xlabel=$x$,ylabel=$y$,legend pos=north west,legend cell align=left]%
\addplot[color=blue,
mark=*,mark layer=like plot]%
table[x=xValue1,y=yValue1] {TableQuestion.txt};%
\addplot[color=red,
mark=none]%
table[x=xValue2,y=yValue2] {TableQuestion.txt};%
\legend{first entry, second entry}
\end{axis}%
\end{tikzpicture}%
\end{document}

答案1

这听起来像是 pgfplots 中的一个错误。

这个特定示例的解决方法是绘制 tikzpicture没有然后缩放整个 tikzpicture。这可以是 scalebox 或 tikzpicture,其格式如下transform shape

\begin{tikzpicture}[transform shape,scale=0.8]%odd behaviour
\node {%
\begin{tikzpicture}
\begin{axis}[
set layers, 
xlabel=$x$,ylabel=$y$,legend pos=north west,legend cell align=left]%
\addplot[color=blue,
mark=*,mark layer=like plot]%
table[x=xValue1,y=yValue1] {TableQuestion.txt};%
\addplot[color=red,
mark=none]%
table[x=xValue2,y=yValue2] {TableQuestion.txt};%
\legend{first entry, second entry}
\end{axis}%
\end{tikzpicture}%
};%
\end{tikzpicture}%

相关内容