自动绘制所有列

Val*_*ine 5 gnuplot

我有一个包含多列数据的文件(列数N可能非常大).我想将所有列绘制为第一个列的函数(即,使用1:2绘制'Data.txt',使用1:3,'Data.txt',使用1,'Data.txt'绘制'Data.txt' :N).问题是,当我不知道列数时,我想要这个命令工作.那可能吗?

Mig*_*uel 9

您可以使用文件计算文件中的列数,awk然后执行循环绘图.可能有一个函数来获取已经在gnuplot中实现的数据文件中的列数,但我不知道.你可以试试这个:

N=`awk 'NR==1 {print NF}' Data.txt`
plot for [i=2:N] "Data.txt" u 1:i
Run Code Online (Sandbox Code Playgroud)

如果您的第一行包含注释(开头#),请更改NR==为适当的值.如果不同行的列数可变,则可能需要使awk命令复杂化.