\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}

ここに画像の説明を入力してください

関連情報