从gnuplot

时间:2018-09-14 14:03:06

标签: plot gnuplot data-files

我有一个包含100列和数千行的数据文件,但是我希望能够选择一个单行,在该行中,将偶数列用作X轴的输入,奇数列用作图的Y轴输入。有什么办法可以在gnuplot中做到吗?

1 个答案:

答案 0 :(得分:0)

因此,在此脚本中,我完成了从给定数据文件绘制给定行的操作,其中奇数列为x轴,偶数列为y轴。

#!/usr/bin/gnuplot
set term pdf
set output "plot.pdf"

line_number=1
data_file="data.dat"

set xrange[0:10]
set yrange[0:10]

table_file="/tmp/gnuplot_tab.dat"
set table table_file

plot for[i=1:*:2] "<(sed -n '".line_number."p' ".data_file.")" u i:i+1
unset table
unset key
plot table_file

让我们解释一下此脚本:

首先,我们用line_number指定行号,并用data_file指定数据文件名。根据gnuplot documentation的规定,set table table_file的作用是在文件̀table_file instead of ploting them with plot`命令中打印点的坐标。

plot for[i=1:*:2]开始的每个i的{​​{1}}绘图,直到无法再绘制任何列并在每次迭代时增加1时结束。想法是将列2 ie 奇数)和i ie 偶数)作为坐标(或使用反{{1 }}在x轴上取偶数,在y轴上取奇数)。

部分i+1的灵感来自Gnuplot plotting data from a file up to some row,并选择您指定为文件的行。由于i+1:i已完成,因此此"<(sed -n '".line_number."p' ".data_file.")"命令将每个坐标保存到一个新文件中。这是在两列文件中转换行的技巧。

最后,脚本禁用了̀set table set table table_file`

我用以下数据文件对其进行了测试,将行号从plot更改为to then plot the saved file

1