Gnuplot:从字符串绘图跳过第一行

时间:2015-03-13 21:23:25

标签: string plot echo gnuplot popen

这是我的最小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,我猜这不是最新的...) 谢谢!

1 个答案:

答案 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