pgfplots:宏中的可选图形范围参数

pgfplots:宏中的可选图形范围参数

我定义了一个插入图表的宏,我可以在多个地方重复使用相同的图表样式。我实际上是从文件加载数据,但类似的 MWE 看起来像:

\newcommand{\drawGraph}[1]{
  \begin{figure}
    \begin{tikzpicture}
      \begin{axis}[xmin=0, xmax=#1]
        \addplot {x^2};
      \end{axis}
    \end{tikzpicture}
  \end{figure}
}
\drawGraph{10}

在这个例子中,参数是xmax\drawGraph{10}绘制到 x=10)的值。

我该如何提出这个论点选修的,这样我只需调用\drawGraphpgfplots 就会自动设置 xmax 值?

答案1

只需使用标准方式使用可选参数(默认值为空):

\newcommand{\drawGraph}[1][]{...}
%                       ^  ^----- empty default value
%                       |-------- one argument

pgfplots这依赖于将视为xmax=键根本xmax没有被设置的事实。因此,空的默认值会导致pgfplots像往常一样计算轴限制,但指定的值会覆盖该计算。

唯一的其他变化是在使用命令时从强制参数分隔符切换{}到可选参数分隔符。完整代码:[]

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}

\newcommand{\drawGraph}[1][]{
  \begin{figure}
    \begin{tikzpicture}
      \begin{axis}[xmin=0, xmax=#1]
        \addplot {x^2};
      \end{axis}
    \end{tikzpicture}
  \end{figure}
}

\begin{document}
\drawGraph
\drawGraph[10]
\drawGraph[15]
\end{document}

在此处输入图片描述

相关内容