来自文件

时间:2015-04-22 12:38:47

标签: colors gnuplot histogram rgb

我有一个格式如下的文件:

A 12.0 255,20,147
B 325.0 255,255,0
C 134456.0 255,255,0
D 13869.0 0,0,0
E 4321.0 255,0,0
F 43676.0 165,42,42

我想生成一个直方图,其中$ 2是条形的高度,$ 1是标签(即:它写在条形图下方,x轴下方),$ 3是条形图的RGB颜色。 我已阅读thisthis,但我仍然无法弄清楚如何做我刚刚描述的内容。

1 个答案:

答案 0 :(得分:0)

我找到了一种方法:首先必须更改rgb颜色的格式,将逗号更改为空格,以便新文件变为:

A 12.0 255 20 147
B 325.0 255 255 0
C 134456.0 255 255 0
D 13869.0 0 0 0
E 4321.0 255 0 0
F 43676.0 165 42 42

然后你必须指示gnuplot如何解析rgb颜色:

rgb(r,g,b) = int(r)*65536 + int(g)*256 + int(b)

最后,您可以指定您希望第1列成为标签(xticlabels(1))并希望变色(lc rgb variable),并将rgb函数传递给您的相应列文件(rgb($3,$4,$5))。 总而言之,以下命令对我有用:

set style fill solid
rgb(r,g,b) = int(r)*65536 + int(g)*256 + int(b)
plot 'hist_test.dat' using (column(0)):2:(0.5):(rgb($3,$4,$5)):xticlabels(1) w boxes lc rgb variable;