是否可以使用样式或等效项来指定 的列表达式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}