如何缩放 pgfplot 表中的列号

如何缩放 pgfplot 表中的列号

我想将文件中第二列的数字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}

相关内容