Reutilizar un estilo de serie en PGFplots

Reutilizar un estilo de serie en PGFplots

Tengo muchos PGFplots en mi documento con un estilo consistente en todas partes, administrados a través de una lista de ciclos compartida.

Ahora me gustaría reutilizar un estilo de trazado anterior dentro del mismo PGFplot.

Como ejemplo, aquí quiero decir que el tercer gráfico debe usar el mismo estilo que el primero, pero sin especificar cuál es ese estilo (ya que esto se dará en otra parte de la lista de ciclos).

ingrese la descripción de la imagen aquí

(Perdón por el feo recorte a la derecha de la imagen :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}

Me gustaría que el tercer gráfico marrón tuviera el mismo estilo que el primer gráfico azul, pero sin especificar manualmente los detalles de estilo como blue, mark=oetc. ¿Se puede hacer esto directamente?

Opcionalmente, si eso no es posible, ¿puedo cargar el primer estilo en la lista de ciclos activos para el tercer trazado?

Respuesta1

pgfplotsviene con un mecanismo \label/ \refpara etiquetar gráficos y hacer referencia a su estilo en otro lugar. Si bien este mecanismo está destinado a generar leyendas en algún lugar dentro del texto, también se puede acceder a las opciones de estilo del gráfico etiquetado usando la clave 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}

ingrese la descripción de la imagen aquí

Tenga en cuenta que esto requiere dos compilaciones del documento. Los detalles de este \label/ \refmecanismo se pueden encontrar en el apartado "Leyendas con etiqueta y referencia" del manual.

Respuesta2

Opcionalmente, si eso no es posible, ¿puedo cargar el primer estilo en la lista de ciclos activos para el tercer trazado?

Puedes usar

\pgfplotsset{cycle list shift=-2}

para mover el contador de la lista de ciclos hacia adelante o hacia atrás, donde podemos lograr lo que necesitamos agregando el comando anterior antes del tercer gráfico.

Tenga en cuenta que esto no se acumula... por lo tanto, si desea que el cuarto gráfico sea ascendente, deberá agregar:

\pgfplotsset{cycle list shift=-2}

de nuevo.

información relacionada