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

4

我有类似于这样的数据:

# 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

我需要在 x 轴上绘制 c1 (23,24),在 y 轴上绘制 c3,并对不同的 c2 值绘制多个图表,每个 c2 值都使用不同的颜色。请参照下图进行操作:enter image description here
1个回答

2

通常情况下,为了使连接筛选后的点的线条连续,您必须在gnuplot外进行过滤。

如果您知道第二列中可能出现的所有值,可以使用Plotting multiple graphs depending on column value with 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

enter image description here


@Chirstoph 你好,我们如何从类似的数据中生成直方图呢? - GP92
这取决于你的直方图实际上应该是什么样子的(堆叠,聚类等)。最好提出一个新问题,并描述你想要实现的具体内容以及你遇到了什么困难。 - Christoph

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接