这是我的最小Gnuplot脚本:
data="3.000000\t49.200000\n3.500000\t42.800000\n4.000000\t37.800000\n4.500000\t33.800000\n5.000000\t30.400000\n5.500000\t28.000000\n"
plot '< echo -e '.sprintf('"%s"', data) using 1:2 title 'there is no data point for x=3.0?' w linespoints
在我的实际脚本中,当然,我以不同的方式填充数据字符串(使用stats命令),因此首先将数据保存到文件,然后运行plot应该可以工作,但我不喜欢它!看起来过于繁琐,留下流浪文件等等。
我目前的解决方案是在字符串前面添加一条虚线(data =&#34; 0 \ t0 \ n ...&#34;),但我担心的是:我做错了什么,或者这是一个bug? (我在ubuntu 14.04,gnuplot 4.6 patchlevel 4,我猜这不是最新的...) 谢谢!
答案 0 :(得分:1)
删除-e
选项,它可以正常工作:
data="3.000000\t49.200000\n3.500000\t42.800000\n4.000000\t37.800000\n4.500000\t33.800000\n5.000000\t30.400000\n5.500000\t28.000000\n"
plot '< echo '.sprintf('"%s"', data) using 1:2 title 'there is a data point for x=3.0!' w linespoints
但是我无法告诉你为什么它有效;)
作为您的展望:Gnuplot 5有一种新的方法可以将内联数据保存为某种类型的heredoc。在我看来,将实际数据文件包含在绘图脚本中并不是一个好方法,但它是受支持的:
$data <<EOD
3.000000 49.200000
3.500000 42.800000
4.000000 37.800000
4.500000 33.800000
5.000000 30.400000
5.500000 28.000000
EOD
plot $data using 1:2 notitle w linespoints