如何在gnuplot中使用数据列之一作为图例?

如何在gnuplot中使用数据列之一作为图例?,gnuplot,Gnuplot,我有这样的数据: # c1 c2 c3 23 b 323 23 g 54 23 a 11 23 c 1 23 d 0 23 e 397 23 f 40 24 b 23 24 g 24 24 a 113 24 c 12 24 d 10 24 e 7 24 f 50 对于不同的c2值,我需要在x轴(23,24)上绘制c1,在y轴上绘制c3,也就是说,对于每个c2值,多个具有不同颜色的图形 一般来说,您必须在gnuplot之外进行过滤,以便让线路连接过滤点 如果您知道第二列中可能出现的所有值,则可以

我有这样的数据:

# c1 c2 c3
23 b 323
23 g 54
23 a 11
23 c 1
23 d 0
23 e 397
23 f 40
24 b 23
24 g 24
24 a 113
24 c 12
24 d 10
24 e 7
24 f 50
对于不同的c2值,我需要在x轴(23,24)上绘制c1,在y轴上绘制c3,也就是说,对于每个c2值,多个具有不同颜色的图形


一般来说,您必须在gnuplot之外进行过滤,以便让线路连接过滤点

如果您知道第二列中可能出现的所有值,则可以使用中给出的解决方案

如果您不知道可能的值,可以使用

c2s = system("awk '!/^#/ { print $2 }' test.dat | sort | uniq")
plot for [c2 in c2s] sprintf('< grep ''\b%s\b'' test.dat', c2) using 1:3 with lines title c2
然后用

c2s = system("awk '!/^#/ { print $2 }' test.dat | sort | uniq")
plot for [c2 in c2s] sprintf('< grep ''\b%s\b'' test.dat', c2) using 1:3 with lines title c2
[c2s中的c2]sprintf(“绘图,使用1:3和行标题c2

@Chirstoph Hi我们如何从相似的数据中生成直方图?这取决于直方图的实际外观(堆叠、聚集等),最好提出一个新问题,描述一下你到底想要实现什么,以及你是否被绊倒了。