Graph 在gnuplot中每十行可以画一行吗?
我有如下数据文件:Graph 在gnuplot中每十行可以画一行吗?,graph,gnuplot,sampling,Graph,Gnuplot,Sampling,我有如下数据文件: #X1 y1 x2 y2 Number 123 567 798 900 1 788 900 87 89 2 .... 我用下面的命令画出我的图形 plot '~/Desktop/pointcolor.txt' using 1:2:($3-$1):($4-$2):5 with vectors palette nohead notitle 结果如下 如上图所示,结果是压缩的,所以我想每十行画一行,在数据文件中有相同的数字 Edit1: 我尝试@ewcz解决方案,如下所示:
#X1 y1 x2 y2 Number
123 567 798 900 1
788 900 87 89 2
....
我用下面的命令画出我的图形
plot '~/Desktop/pointcolor.txt' using 1:2:($3-$1):($4-$2):5 with vectors palette nohead notitle
结果如下
如上图所示,结果是压缩的,所以我想每十行画一行,在数据文件中有相同的数字
Edit1:
我尝试@ewcz解决方案,如下所示:
stat="0 0 0 0 0 0 0" # How should I define array as [gnuplot][2] didn't support it?
plot "< awk '{if(( (stat[$5]++)%10==0 )) print}'~/Desktop/pointt.txt" using 1:2:($3-$1):($4-$2):5 with vectors palette nohead notitle
stat=“0 0”#如果[gnuplot][2]不支持数组,我应该如何定义它?
使用1:2:($3-$1):($4-$2):5和矢量调色板nohead notitle绘制“
但我得到了这个错误:
gnuplot> load "gnuplot.cmd"
awk: line 1: syntax error at or near
gnuplot> plot "< awk '{if(( (stat[$5]++)%10==0 )) print}'~/Desktop/pointcolor.txt" using 1:2:($3-$1):($4-$2):5 with vectors palette nohead notitle
^
"gnuplot.cmd", line 6: warning: Skipping data file with no valid points
gnuplot> plot "< awk '{if(( (stat[$5]++)%10==0 )) print}'~/Desktop/pointcolor.txt" using 1:2:($3-$1):($4-$2):5 with vectors palette nohead notitle
^
"gnuplot.cmd", line 6: x range is invalid
gnuplot>load“gnuplot.cmd”
awk:第1行:在或附近出现语法错误
gnuplot>plot“plot“
Edit2:
解决方案:
plot "< awk '{if((stat[$5]++)%10==0) print}' ~/Desktop/pointt.txt" using 1:2:($3-$1):($4-$2):5 with vectors palette nohead notitle
plot“
为了实现这一点,必须(很可能)对输入进行某种预处理。幸运的是,Gnuplot允许以简单的方式绘制命令的结果。在您的情况下,可以将plot命令修改为:
plot "< gawk '{if((stat[$5]++)%10==0) print;}' ~/Desktop/pointcolor.txt" ...
plot“
这里,行的id(基于第五列)存储在数组
stat
中。如果此id可被10
整除,则打印该行并因此打印(即,丢弃其他输入行)。这些链接使用每个选项根据行号绘制线,在我的情况下如何使用此选项?stat
数组是调用(g)awk
的内部,不需要行stat=“0 0”
。另外,~
字符前面应该有一个空格,这样awk
就可以区分撇号中包含的命令和正在处理的文件~/Desktop/pointcolor.txt
我仍然会得到一个错误:(撇号后面应该有一个空格,即,plot”