引用使用 \pgfplotsset 設定樣式的行

引用使用 \pgfplotsset 設定樣式的行

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

在此輸入影像描述

相關內容