在gnuplot中计算csv中的列数
gnuplot中是否有函数返回csv文件中的列数?在gnuplot中计算csv中的列数,gnuplot,Gnuplot,gnuplot中是否有函数返回csv文件中的列数? 我在文档中找不到任何内容,也许有人可以为此建议一个定制功能?假设这与相关,并且infle.csv的内容是: 你可以这样做: plot.gp nc=“`awk-F,'NR==1{print NF;exit}”infle.csv`” 设置键自动字幕栏头 设置数据文件分隔符“,” 使用1:i和线条为[i=2:nc]“
我在文档中找不到任何内容,也许有人可以为此建议一个定制功能?假设这与相关,并且infle.csv的内容是: 你可以这样做: plot.gp
nc=“`awk-F,'NR==1{print NF;exit}”infle.csv`”
设置键自动字幕栏头
设置数据文件分隔符“,”
使用1:i和线条为[i=2:nc]“
请注意,\1
在Gnuplot中的“
中使用时需要转义
输出:
从gnuplot 4.6开始,您可以编写一个小的hack脚本来实现这一点。它当然不是最有效的,但它是纯gnuplot:
#script col_counter.gp
col_count=1
good_data=1
while (good_data){
stats "$0" u (valid(col_count))
if ( STATS_max ){
col_count = col_count+1
} else {
col_count = col_count-1
good_data = 0
}
}
现在在你的主要剧本中
call "col_counter.gp" "my_datafile_name"
print col_count #number of columns is stored in col_count.
这有一些限制——例如,如果数据文件中有一列完全非数字,后面跟着更有效的列,那么它会阻塞,但是我认为它应该适用于许多典型的用例
print col_count
最后,您可以使用环境变量
GNUPLOT_LIB
,然后您甚至不需要在当前目录中有col_counter.gp
。我认为GNUPLOT没有任何变量可以告诉您这一点。您可以使用的答案作为解决方法。我在这里借用了您的想法作为我的答案:
print col_count