PGFplots でシリーズ スタイルを再利用する

PGFplots でシリーズ スタイルを再利用する

私のドキュメントには、共有サイクル リストを通じて管理される、一貫したスタイルの PGF プロットが多数あります。

ここで、同じ PGFplot 内で以前のプロット スタイルを再利用したいと思います。

例として、ここでは、3 番目のプロットでは最初のプロットと同じスタイルを使用する必要があると言いたいのですが、そのスタイルが何であるかは指定しません (これはサイクル リストの別の場所で指定されるため)。

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

(画像の右側が醜く切り取られていて申し訳ありません :P)

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}

%and define new styles like this:
% \pgfplotsset{
%    ...
%}

\begin{document}
\begin{tikzpicture}
   \begin{axis}[ylabel=y,
    xlabel=x,]
        \addplot
        coordinates
        {
            (0,10)
            (10,0)
        };
        \addlegendentry{Descending}

        \addplot
        coordinates
        {
            (0,3)
            (10,5)
        }; 
        \addlegendentry{Ascending}

        \addplot
        coordinates
        {
            (0,7)
            (10,5)
        };
        % Reuse descending style
    \end{axis}     
\end{tikzpicture}
\end{document}

3 番目の茶色のプロットを最初の青色のプロットと同じスタイルにしたいのですが、、などのスタイルの詳細を手動で指定する必要はありませんbluemark=oこれを直接実行できますか?

オプションとして、それが不可能な場合は、3 番目のプロットのアクティブ サイクル リストの最初のスタイルを読み込むことはできますか?

答え1

pgfplots\labelプロットにラベルを付け、そのスタイルを他の場所で参照するための/メカニズムが付属しています\ref。このメカニズムはテキスト内のどこかに凡例を生成することを目的としていますが、キーを使用してラベル付きプロットのスタイルオプションにアクセスすることもできますrefstyle

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}

%and define new styles like this:
% \pgfplotsset{
%    ...
%}

\begin{document}
\begin{tikzpicture}
   \begin{axis}[ylabel=y,
    xlabel=x,]
        \addplot
        coordinates
        {
            (0,10)
            (10,0)
        };
        \addlegendentry{Descending}
        \label{plot:1}

        \addplot
        coordinates
        {
            (0,3)
            (10,5)
        }; 
        \addlegendentry{Ascending}

        \addplot[refstyle={plot:1}]
        coordinates
        {
            (0,7)
            (10,5)
        };
        % Reuse descending style
    \end{axis}     
\end{tikzpicture}
\end{document}

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

これにはドキュメントを 2 回コンパイルする必要があることに注意してください。このメカニズムの詳細については、\labelマニュアル\refの「ラベルと参照による凡例」セクションを参照してください。

答え2

オプションとして、それが不可能な場合は、3 番目のプロットのアクティブ サイクル リストの最初のスタイルを読み込むことはできますか?

使用できます

\pgfplotsset{cycle list shift=-2}

サイクル リスト カウンターを前後にシフトするには、上記のコマンドを 3 番目のプロットの前に追加することで、必要な操作を実行できます。

これは累積しないことに注意してください...したがって、4 番目のプロットを昇順にしたい場合は、以下を追加する必要があります。

\pgfplotsset{cycle list shift=-2}

また。

関連情報