我有一个格式如下的文件:
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颜色。 我已阅读this和this,但我仍然无法弄清楚如何做我刚刚描述的内容。
答案 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;