
В моем документе много графиков PGF, имеющих единый стиль и управляемых с помощью общего списка циклов.
Теперь я хотел бы повторно использовать предыдущий стиль графика в том же PGFplot.
В качестве примера я хочу сказать, что третий график должен использовать тот же стиль, что и первый график, но не уточняя, какой это стиль (поскольку он будет указан в другом месте списка циклов).
(Извините за некрасивую обрезку правой части изображения :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}
Мне бы хотелось, чтобы третий коричневый график имел тот же стиль, что и первый синий график, но без ручного указания деталей стиля, таких как blue
, mark=o
и т. д. Можно ли это сделать напрямую?
Если это невозможно, могу ли я загрузить первый стиль в списке активных циклов для третьего графика?
решение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}
Обратите внимание, что для этого требуется две компиляции документа. Подробности этого \label
механизма \ref
можно найти в разделе «Легенды с меткой и ссылкой» в руководстве.
решение2
Если это невозможно, могу ли я загрузить первый стиль в списке активных циклов для третьего графика?
Вы можете использовать
\pgfplotsset{cycle list shift=-2}
для смещения счетчика списка циклов назад или вперед, где мы можем добиться того, что нам нужно, добавив указанную выше команду перед третьим графиком.
Обратите внимание, что это не суммируется... поэтому, если вы хотите, чтобы четвертый график был восходящим, вам нужно будет добавить:
\pgfplotsset{cycle list shift=-2}
снова.