我想从文本文件中绘制一个脉冲图,如下所示:
II 5 0 0 288.40 1.3033e+14
II 6 0 0 289.60 1.5621e+14
II 1 4 0 302.70 3.0084e+13
II 2 4 0 303.40 4.0230e+13
II 1 5 1 304.40 3.4089e+13
概念上应该是plot "datafile.dat" using 5:6 w impulses ls $2
。
基本上,给定一组先前定义的线型,我想从第2列输入第5列和第6列中每一个绘制点的线型号。
另外,我想为每个绘图点创建一个文本框,从前四列中获取字符串。
有人知道这是否可能?
答案 0 :(得分:3)
要将第二列中的数据用作线型,请使用set style increment user
和linecolor variable
:
set style increment user
plot "datafile.dat" using 5:6:2 with impulses lc var
要放置标签,请使用labels
绘图样式:
plot "datafile.dat" using 5:6:1 with labels offset 0,1
把所有东西放在一起,你有:
set style increment user
set for [i=1:6] style line i lt i
set yrange [0:*]
set offsets 0,0,graph 0.1,0
plot "datafile.dat" using 5:6:2 with impulses lc var, "" using 5:6:1 with labels offset 0,1
4.6.3的结果是:
答案 1 :(得分:1)
感谢上面的有用答案。它几乎解决了我的问题
我实际上尝试使用我的数据文件中的列来指定线条样式(点,正方形,三角形,无论用户定义的是什么),而不是线条颜色。有没有办法做到这一点?
此行有效:我获得了不同颜色的点(在第4列中指定),但点样式是相同的。
plot "$file" u 1:2:4 w p notitle lc var, "" using 1:2:3 with labels offset 0,1 notitle
在定义自己的样式后用lc
替换ls
并不起作用(ls
无法variable
作为选项)
我可以没有不同的线条生活,但它会更漂亮。
答案 2 :(得分:1)
您只需要替换set for [i=1:6] style line i lt i
的{{1}}行,其中set for [i=1:6] style line i lt i pt %
可以是您想要的任何类型的点