限制大型二进制数据文件的gnuplot绘图

限制大型二进制数据文件的gnuplot绘图,plot,gnuplot,Plot,Gnuplot,我得到了一个9GB的大二进制数据文件(格式为'%float%float'),当gnuplot 5.0试图读取整个文件时,它就崩溃了 如何制定绘图命令来限制绘图,使其只能读取1K或2K左右的二进制数据文件?您可以使用gnuplot的关键字,例如,绘制前2000条记录: plot 'file.dat' binary format='%float%float' every ::::2000 using 1:2 with lines; 但它似乎读取整个文件,然后只打印前2000条记录,这可能不是您想要

我得到了一个9GB的大二进制数据文件(格式为'%float%float'),当gnuplot 5.0试图读取整个文件时,它就崩溃了

如何制定绘图命令来限制绘图,使其只能读取1K或2K左右的二进制数据文件?

您可以使用gnuplot的关键字,例如,绘制前2000条记录:

plot 'file.dat' binary format='%float%float' every ::::2000 using 1:2 with lines;
但它似乎读取整个文件,然后只打印前2000条记录,这可能不是您想要的。因此,您可能必须使用外部实用程序,如:

plot "<(head --bytes 16000 file.dat)" binary format='%float%float' using 1:2 with lines

plot“是的,您的第一个建议确实读取了整个数据文件。第二个建议导致gnuplot警告:跳过没有有效点的数据文件。结果是一个空的绘图。我不确定gnuplot是否知道二进制数据时“记录”的概念?嗯,一个玩具示例(我编辑了答案以添加它)gnuplot 5.0为我工作。还有其他一些关键字可以与
二进制
一起使用,它们修改了gnuplot的“记录”概念,比如
文件类型
数组
,以防您使用其中一个。这越来越近了!但是当我使用这个cmd时,gnuplot仍然抱怨:
gnuplot-e“set terminal png;设置xrange[0.00:2.0];设置Y范围[0.3:2.0];设置“仅5个正方形.png”;plot'Oops,我错误地假设您使用的是Linux版本的
head
,它支持
--bytes
选项。既然你的广告似乎是
-c bytes
,那么用
头-c 16000
替换
头-c 16000
怎么样?
perl -e 'for ($i=0; $i < 21; $i++) { print pack "ff", $i, $i*$i }' > squares.dat
gnuplot -e "set terminal png;set out 'only5squares.png';plot '<(head --bytes 40 squares.dat)' binary format='%float%float' using 1:2 with lines;"