![如何缩放 pgfplot 表中的列号](https://linux22.com/image/289145/%E5%A6%82%E4%BD%95%E7%BC%A9%E6%94%BE%20pgfplot%20%E8%A1%A8%E4%B8%AD%E7%9A%84%E5%88%97%E5%8F%B7.png)
我想将文件中第二列的数字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}