
Ich habe viele PGFplots in meinem Dokument mit einem durchgängig konsistenten Stil, die über eine gemeinsame Zyklusliste verwaltet werden.
Jetzt möchte ich einen vorherigen Plotstil innerhalb desselben PGFplots wiederverwenden.
Als Beispiel möchte ich hier sagen, dass der dritte Plot den gleichen Stil wie der erste Plot verwenden soll, ohne jedoch anzugeben, um welchen Stil es sich handelt (da dieser an anderer Stelle in der Zyklusliste angegeben wird).
(Tut mir leid wegen des hässlichen Beschnitts rechts im Bild :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}
Ich möchte, dass das dritte braune Diagramm den gleichen Stil hat wie das erste blaue Diagramm, ohne jedoch die Stildetails wie blue
, mark=o
, usw. manuell anzugeben. Kann dies direkt erfolgen?
Wenn das nicht möglich ist, kann ich optional den ersten Stil in der aktiven Zyklusliste für den dritten Plot laden?
Antwort1
pgfplots
verfügt über einen \label
/ \ref
-Mechanismus, um Diagramme zu beschriften und ihren Stil an anderer Stelle zu referenzieren. Während dieser Mechanismus dazu gedacht ist, Legenden irgendwo innerhalb des Textes zu generieren, kann man auch mit der Taste auf die Stiloptionen des beschrifteten Diagramms zugreifen 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}
Beachten Sie, dass hierfür zwei Kompilierungen des Dokuments erforderlich sind. Einzelheiten zu diesem \label
Mechanismus \ref
finden Sie im Abschnitt „Legenden mit Beschriftung und Referenz“ im Handbuch.
Antwort2
Wenn das nicht möglich ist, kann ich optional den ersten Stil in der aktiven Zyklusliste für den dritten Plot laden?
Sie können
\pgfplotsset{cycle list shift=-2}
um den Zyklenlistenzähler nach hinten oder vorne zu verschieben. Wir können das gewünschte Ergebnis erzielen, indem wir vor dem dritten Plot den obigen Befehl hinzufügen.
Beachten Sie, dass dies nicht akkumuliert wird. Wenn Sie also möchten, dass das vierte Diagramm aufsteigend ist, müssen Sie Folgendes hinzufügen:
\pgfplotsset{cycle list shift=-2}
wieder.