使用GNU图绘制文件中的数据列表

时间:2012-06-06 15:46:03

标签: gnuplot

我有一个文件,其文件中的随机值介于-256到+256之间。每个条目都在一个新行中。我想用y轴上的文件中的值绘制此文件。我不知道执行plot命令时的条目数。有人知道这样做吗?

1 个答案:

答案 0 :(得分:4)

如果我理解正确,您的文件如下:

100
-120
248
10
-212
...

(我使用了整数,但是浮点数可以正常工作......甚至像“1.e-5”这样的数字都没问题)如果是这样的话,你可以很容易地绘制它:

plot 'datafile.txt' using 1

x值将从0开始,并上升到文件中的行数。有关详细信息,请参阅help datafile using

如果您希望所有点具有相同的x值,您可以执行以下操作:

plot 'datafile.txt' using (0.0):1

你可能会收到关于x轴零范围的警告(这不是问题 - gnuplot做对了)。如果你真的想摆脱警告,那么在绘图之前设置xrange(或者在绘图时......)

e.g。

set xrange [-1:1]
plot 'datafile.txt' using (0.0):1

plot [x=-1:1] 'datafile.txt' using (0.0):1

修改

根据您在下面的评论中所说的内容,您使用gnuplot运行的脚本如下所示:

set terminal png 
set output "waveform-hy1-00000001-20120501-160221.929.raw.png" 
plot 'waveform.txt' with dots # it shouldn't matter, but I always use a using statement just for clarity.
replot        # <--- a replot after a plot is probably not what you want here.
set output "delta-hy1-00000001-20120501-160221.929.raw.png"  #<-- Nothing will be written to this file...

一些注释 - 首先,您确定在绘图之前刷新/关闭输出文件(waveform.txt)和脚本文件(temp)吗?如果输出被缓冲,那么当gnuplot读取它时,其中一个文件很可能是空的。接下来,在没有重置输出文件名的情况下创建绘图和重新绘图不是(通常)您想要的。你想用它做什么?你可能想要:

set terminal png 
set output "waveform-hy1-00000001-20120501-160221.929.raw.png" 
plot 'waveform.txt' using 1 with dots
set output "delta-hy1-00000001-20120501-160221.929.raw.png"
replot 

虽然这会在两个不同的文件中生成相同的图。两个不同文件的目的是什么?还有更多你没有表现出来吗?也许如果您粘贴文件temp的全部内容以及您尝试执行的操作的描述,我们可以提供更多帮助。 (此外,您在此脚本中添加了引号 - 如果您在c ++程序中编写脚本,则应检查以确保在创建temp时正确地转义了引号。)

最后,你在做什么操作系统?在我没有经验的窗口上使用gnuplot有很多...