我想将文件中第二列的数字dataTest.dat
乘以 1E4,但似乎\addplot table[x=x,y=10000*y] {dataTest.dat};
行不通,那我该怎么办?代码如下,
% !TEX TS-program = latex
\documentclass[class=article,border=1pt]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot table[x=x,y=y] {dataTest.dat};
\end{axis}
\end{tikzpicture}
\end{document}
文件如下dataTest.dat
:
x y
1 0.00004
2 0.00460
3 0.00114
4 0.00037
5 0.00017
6 0.00010
7 0.00010
8 0.00010
9 0.00010
10 0.00010
11 0.00010
12 0.00010
13 0.00010
14 0.00010
答案1
这是一个可能的解决方案。使用filter
将输入坐标作为 #1 的代码,应用一些操作并将结果写入宏pgfmathresult
。
y filter/.code={\pgfmathparse{#1*10000}\pgfmathresult}
代码
\documentclass[class=article,border=1pt]{standalone}
\usepackage{tikz}
\usepackage{pgfplots,filecontents}
\pgfplotsset{compat=1.8}
\begin{filecontents*}{dataTest.dat}
x y
1 0.00004
2 0.00460
3 0.00114
4 0.00037
5 0.00017
6 0.00010
7 0.00010
8 0.00010
9 0.00010
10 0.00010
11 0.00010
12 0.00010
13 0.00010
14 0.00010
\end{filecontents*}
\begin{document}
\begin{tikzpicture}
\begin{axis}[y filter/.code={\pgfmathparse{#1*10000}\pgfmathresult}]
\addplot table[x=x,y=y] {dataTest.dat};
\end{axis}
\end{tikzpicture}
\end{document}