使用 pfgplots 绘制 .dat 数据集并减去第一个值

使用 pfgplots 绘制 .dat 数据集并减去第一个值

我想用 tikz 绘制 .dat 或 .csv 数据集。第一列是时间,第二列是电压。由于数据集非常庞大,我已经通过只读取其中的每 100 个值来减小其大小。为此,我使用了 gnuplot,如下所示。我用示波器测量了数据集,因此 x 和 y 坐标存在偏移。我现在的问题是减去这个偏移,如“$1-firstvalueofthiscolumn”(要从列中的每个值中减去偏移)。已经可以减去固定值,如“$1-0.1”,但由于我有很多数据文件,因此需要花费大量精力才能找出每个偏移量。有没有办法读取数据文件的第一列值并减去这个?

我的想法是先读取数据文件,然后将每列的第一个值保存为变量,以便以后绘图时使用。但不幸的是,我没能成功运行。

我非常感谢你的帮助

编辑:我已经在此处上传了示波器测量的数据集: https://www.filemail.com/d/qtulzcvctxmtleh

\documentclass{article}

\usepackage{pgfplots}

\pgfplotsset{compat=newest}

\begin{document}

\begin{tikzpicture}
  \begin{axis}
    \addplot [no markers] gnuplot [raw gnuplot] {
        plot "Test/rising_edge_cap.dat" using ($1):($2) every 100; 
    };
  \end{axis}
\end{tikzpicture}

\end{document}

答案1

由于您没有提供任何数据(除了外部链接),我只做了一些随机数。情节被移动,以便它从(0,0)- 我猜这就是您想要的。

\documentclass[tikz, border=1 cm]{standalone}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.dat}
10 1000
22 2369
33 3837
44 6819
55 7124
66 4849
\end{filecontents*}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot [red, mark=*] gnuplot [raw gnuplot] {plot "\jobname.dat"  using 1:2 };
\addplot [green, mark=*] gnuplot [raw gnuplot] {plot "\jobname.dat"  using ($0==0?(offsetx=$1)-offsetx:$1-offsetx):($0==0?(offsety=$2)-offsety:$2-offsety) };
\end{axis}
\end{tikzpicture}
\end{document}

红色随机图。绿色是相同的图,但偏移量从 0,0 开始

相关内容