在下面的 MWE 示例中,似乎参考的线条样式设置不正确(在图中,圆圈未填充,但在引用它们时会被填充)。
我做错了什么吗?或者这是一个错误?如果是这样,有什么解决方法吗?除了手动设置文档中所有行的样式。
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pgfplotsset{
every axis plot/.append style={thick, black},
every axis plot post/.append style={
every mark/.append style={mark size=3,solid,fill opacity=0}
}
}
\begin{document}
Why is this marker \ref{myline} different but this one
\ref{myline-correct} is correct?
\begin{tikzpicture}
\begin{axis}
\addplot[mark=*]
table [x=x, y=y]{%
x y
0 0
1 1
2 2
3 3
4 4
};
\label{myline}
\addplot[mark=square, mark size=3,solid,fill opacity=0]
table [x=x, y=y]{%
x y
4 0
3 1
2 2
1 3
0 4
};
\label{myline-correct}
\end{axis}
\end{tikzpicture}
\end{document}
答案1
请参阅 pgfplots 手册第 4.7.1 节,其中说“每个轴绘图后样式都可用于覆盖为绘图分配的部分(或全部)绘图样式。”。另请参阅第 4.5.12 节,其中详细介绍了顺序。因此,最重要的是,如果您删除该post
指令,
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pgfplotsset{
every axis plot/.append style={thick, black},
every axis plot/.append style={
every mark/.append style={mark size=3,solid,fill opacity=0}
}
}
\begin{document}
Now both the marker \ref{myline} and \ref{myline-correct} are correct?
\begin{tikzpicture}
\begin{axis}
\addplot[mark=*]
table [x=x, y=y]{%
x y
0 0
1 1
2 2
3 3
4 4
};
\label{myline}
\addplot[mark=square, mark size=3,solid,fill opacity=0]
table [x=x, y=y]{%
x y
4 0
3 1
2 2
1 3
0 4
};
\label{myline-correct}
\end{axis}
\end{tikzpicture}
\end{document}