在下面的 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}