Gnuplot从数据文件列读取行样式

Gnuplot从数据文件列读取行样式,gnuplot,Gnuplot,我想从一个文本文件中绘制一个脉冲图,如下所示: 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 从概念上讲,绘图应为使用5:6 w脉冲ls$2绘制“datafile.dat” 基本上,给定一组先前定义的线样式,我希望为第5列和第6列中的每两个绘制点输入第2列中的线样式

我想从一个文本文件中绘制一个脉冲图,如下所示:

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
从概念上讲,绘图应为
使用5:6 w脉冲ls$2绘制“datafile.dat”

基本上,给定一组先前定义的线样式,我希望为第5列和第6列中的每两个绘制点输入第2列中的线样式编号。
我还想为每个打印点创建一个文本框,从前四列中提取字符串


有人知道这是否可行吗?

要将第二列中的数据用作线条样式,请使用
设置样式增量用户
线条颜色变量

set style increment user
plot "datafile.dat" using 5:6:2 with impulses lc var
要放置标签,请使用
标签
打印样式:

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的结果是:


感谢您提供上述有用的答案。它几乎解决了我的问题

实际上,我试图使用数据文件中的一列来指定线型(点、正方形、三角形,只要是用户定义的),而不是线型。有办法吗

这条线起作用:我得到不同颜色的点(在第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
不能将
变量作为选项)

我可以不使用不同的线型,但它会更漂亮。

你只需更换[I=1:6]线型的
集合,而[I=1:6]线型的
集合,其中
%
可以是你想要的任何类型的点