我的 pgfplots 图有一些默认设置,例如xlabel
、等等。由于我有大量这样的图ylabel
,width
并且不想重复所有属性,所以我想将它们存储在命令中并使用该命令打印这些属性。这可能吗?我该如何解决这个问题?
笔记我不想更改 pgfplots 的默认设置。我想使用一个命令打印一组特定的属性。
以下是属性的一个示例:
\newcommand{\tikzDefaults}[0]{
xlabel=$k$,
ylabel=$C$,
width=6.4cm,
height=5cm,
cycle list name=best,
enlargelimits=0,
every axis/.append style={font=\tiny},
legend entries={A1, A2, S1, S2, E1, E2, FF},
x tick label style={/pgf/number format/1000 sep=},
x label style={at={(axis description cs:0.5,0.15)},anchor=north},
y label style={at={(axis description cs:0.18,.5)},anchor=south},
}
答案1
\pgfplotsset{tikzDefaults/.style=
{xlabel=$k$,
ylabel=$C$,
width=6.4cm,
height=5cm,
cycle list name=best,
enlargelimits=0,
every axis/.append style={font=\tiny},
legend entries={A1, A2, S1, S2, E1, E2, FF},
x tick label style={/pgf/number format/1000 sep=},
x label style={at={(axis description cs:0.5,0.15)},anchor=north},
y label style={at={(axis description cs:0.18,.5)},anchor=south},}}
然后用作tikzDefaults
选项。它会“保存”其中的所有选项。
答案2
在大多数情况下,Manuel 的解决方案是可行的,但如果您确实想要一个开关类型的命令来打开这些设置,那么这也是可能的。
该示例显示了使用分组概念限制命令的效果。在组结束之前,axis
命令之后的所有环境\tikzDefaults
都将获取您在命令中定义的键值对。
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11,width=3.5cm}% just to fit the example on a single page
\newcommand{\tikzDefaults}[0]{
\pgfplotsset{
xlabel=$k$,
ylabel=$C$,
width=6.4cm,
height=5cm,
% cycle list name=best, % I don't have this cycle list defined
enlargelimits=0,
every axis/.append style={font=\tiny},
legend entries={A1, A2, S1, S2, E1, E2, FF},
x tick label style={/pgf/number format/1000 sep=},
x label style={at={(axis description cs:0.5,0.15)},anchor=north},
y label style={at={(axis description cs:0.18,.5)},anchor=south},
}
}
\newcommand{\drawplot}[1]{% just for the example
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[title=#1]
\addplot {x};
\end{axis}
\end{tikzpicture}
\end{figure}
}
\begin{document}
\drawplot{Outside group; before outer command}
{% the start of a group
\drawplot{Inside group; before outer and inner commands}
\tikzDefaults
\drawplot{Inside group; after inner command}
}% the end of the group
\drawplot{Outside group; before outer command}
\tikzDefaults
\drawplot{Outside group; after outer command}
\end{document}
答案3
您可以通过 打印变量的值\pgfmathprintnumber
,例如在轴环境中,我可以打印该xmax
值\pgfmathprintnumber{\pgfplotsxmax}
,其中\newcommand{\pgfplotsxmax}{\pgfplots@xmax}
在序言中定义