我有很多测量数据文件,想在一个图中比较它们。数据文件如下所示
0,00000 -0,39875 -1,96508 0,05000 -0,38791 -1,95986 0,10000 -0,38026 -1,95792 0,15000 -0,37083 -1,95451 0,20000 -0,35972 -1,94957
是的,没有标题,分隔符是制表符,并且我们有,而不是小数点。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis} [name=plot, legend pos=outer north east]
\addplot[red]
table [
/pgf/number format/read comma as period,
col sep=tab,
x index=1,
y index=2,
# y expr=(\thisrowno{2})*-1 % <- Error
]
{./Data/07062022-1434.txt};
\addlegendentry{100mHz}
\end{axis}
\end{tikzpicture}
\end{document}
数据没有偏移。第一步,我可以手动计算并在使用 latex 绘制数据之前更正数据。我想用一行注释来实现这一点,但它不起作用。我总是收到此错误消息:
程序包 PGF 数学错误:抱歉,浮点单元的内部例程收到格式错误的浮点数“2Y1.0e0]1Y9.5986e4]”。不可读部分位于“2Y1.0e0]1Y9.5986e4]”附近。(在“(-1,95986)*-1”中)。
为什么?表格没有正确转换数据?
下一步是,latex 自动计算偏移量。这是计算:
偏移 = (abs(最大值)-abs(最小值))/2
第 2 列。这可能吗?
我无法手动操作文件,因为我有很多文件,而且我必须在图形图表中比较不同的文件(大小写)。
感谢您的帮助
答案1
\documentclass[tikz, border=1cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot[
red,
mark=*,
y filter/.expression={-y},
] table[
header=false,
col sep=tab,
x index=1,
y index=2,
/pgf/number format/read comma as period,
] {data.dat};
\end{axis}
\end{tikzpicture}
\end{document}