Gnuplot 5.2.2交互式输入内联数据时无响应问题求助
解决gnuplot交互式会话内联数据无响应的问题
嘿,我刚碰到过类似的坑!你遇到的无响应情况,根源在于gnuplot的交互式环境并不支持shell风格的here-doc语法(也就是$data << EOD这种写法)。当你输入这些命令后,gnuplot根本不知道EOD是终止符,它会一直傻等你继续输入数据,所以才会出现光标闪烁但完全无法操作的状态。
下面给你两种在gnuplot交互式会话里正确输入内联数据的实用方法:
方法1:直接用'-'伪文件配合终止符e
这是最常用的内联数据方式,输入完所有数据行后,单独输入e(大小写都可以)来告诉gnuplot数据输入结束:
plot '-' using 1:2 with lines 1 0.5 2 0.75 3 0.99 e
执行到plot '-'时,gnuplot会自动进入数据输入模式,你依次敲完数据行,最后敲e回车,就能正常生成图像了。
方法2:定义可复用的数据块
如果需要多次调用这份数据,可以先把数据存入字符串变量,再通过管道调用:
# 把数据存入变量,用\n换行分隔 mydata = "1 0.5\n2 0.75\n3 0.99" # 通过echo输出数据给gnuplot处理 plot '<echo "'.mydata.'"' using 1:2 with points
或者用set datafile inline来预定义数据块:
set datafile inline plot inline [mydata] using 1:2 with lines mydata 1 0.5 2 0.75 3 0.99 e
记住核心点:gnuplot有自己的内联数据规则,别硬套shell的语法,用e作为数据输入的终止信号就不会再卡住啦!
内容的提问来源于stack exchange,提问作者datamill
相关产品推荐
相关产品推荐

