PGFplots 表表达式的“样式”

PGFplots 表表达式的“样式”

是否可以使用样式或等效项来指定 的列表达式plot table?目标是能够以最少的重复输入对大量不同的图使用相同的表达式。

这是一个示例(无法编译),它表明了我想要做的事情:

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{/pgfplots/columns/.style={x=dof,y expr={\thisrow{L2}+\thisrow{Lmax}}}}
\begin{document}
 \begin{tikzpicture}
  \begin{loglogaxis}
   \addplot table[columns] {      % sample data from PGFplots manual
    dof     L2              Lmax            maxlevel
    5       8.31160034e-02  1.80007647e-01  2
    17      2.54685628e-02  3.75580565e-02  3
    49      7.40715288e-03  1.49212716e-02  4
    129     2.10192154e-03  4.23330523e-03  5
   };
  \end{loglogaxis}
 \end{tikzpicture}
\end{document}

答案1

而不是设置

\pgfplotsset{/pgfplots/columns/.style={x=dof,y expr={\thisrow{L2}+\thisrow{Lmax}}}}

尝试

\pgfplotsset{table/columns/.style={x=dof,y expr={\thisrow{L2}-\thisrow{Lmax}}}}

此外,你的行尾注释% sample data from...干扰了该行

5       8.31160034e-02  1.80007647e-01  2

被密谋。

答案2

当您使用\pgfplotsset它时,它会自动成为pgfplots键系列,但如果您有选择地使用它,则需要将列样式包装到其他键中。否则

\pgfplotsset{columns/.style={x=dof,y expr={\thisrow{L2}+\thisrow{Lmax}}}}

设置全局样式。你可以简单地使用

\addplot table {....};

无需任何选项,因为样式是全局的。选择性使用的示例

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{my col style/.style={columns/.append style={x=dof,y expr={\thisrow{L2}+\thisrow{Lmax}}}}}
\begin{document}
 \begin{tikzpicture}
  \begin{loglogaxis}
   \addplot table[my col style] {      % sample data from PGFplots manual
    dof     L2              Lmax            maxlevel
    5       8.31160034e-02  1.80007647e-01  2
    17      2.54685628e-02  3.75580565e-02  3
    49      7.40715288e-03  1.49212716e-02  4
    129     2.10192154e-03  4.23330523e-03  5
   };
   \addplot table[my col style] {      % sample data from PGFplots manual
    dof     L2              Lmax            maxlevel
    20       8.31160034e-02  1.80007647e-01  2
    137      2.54685628e-02  3.75580565e-02  3
    249      7.40715288e-03  1.49212716e-02  4
    5129     2.10192154e-03  4.23330523e-03  5
   };
  \end{loglogaxis}
 \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容