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