我正在使用Gnuplot生成直方图,但如果值超过/低于特定值,我需要将其中的一些颜色换成另一种颜色。例如,如果值< 10,颜色特定的直方图绿色。 如果值> 10,值&lt; 20,颜色特定的直方图黄色。如果值> 20,颜色直方图红色。
所以我希望图表是这样的:
x 。 y 。的颜色
1。 4。绿色
2。 15。黄
3。 40。红色
值(x和y)来自数据库,所以我无法告诉Gnuplot我想要着色哪些x值,因为值会不时变化。
我能用Gnuplot(和php)完成这个吗?
谢谢!
答案 0 :(得分:5)
您可以使用以下gnuplot脚本:
set style fill transparent solid 0.5 noborder
set boxwidth 0.95 relative
set palette model RGB defined (0 "green", 1 "yellow", 2 "red")
plot 'path\to\your\file' using 1:2:($2<=10 ? 0 : $2<=20 ? 1 : 2) with boxes palette
我的测试文件的内容是
1 4
2 15
3 40
我得到的结果是
答案 1 :(得分:2)
鉴于此数据文件:
1 4 green
2 15 yellow
3 40 red
以下行有效:
plot for [color in "green red yellow"] 'test.dat' using 1:(strcol(3) eq color ? $2:NaN):(0.95) with boxes lc rgb color