Gnuplot中某些特定值的不同颜色的颜色条

时间:2013-04-04 10:11:04

标签: php graph gnuplot

我正在使用Gnuplot生成直方图,但如果值超过/低于特定值,我需要将其中的一些颜色换成另一种颜色。例如,如果值< 10,颜色特定的直方图绿色。 如果值> 10,值&lt; 20,颜色特定的直方图黄色。如果值> 20,颜色直方图红色。

所以我希望图表是这样的:

x y 。的颜色

1。 4。绿色

2。 15。黄

3。 40。红色

值(x和y)来自数据库,所以我无法告诉Gnuplot我想要着色哪些x值,因为值会不时变化。

我能用Gnuplot(和php)完成这个吗?

谢谢!

2 个答案:

答案 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

我得到的结果是

enter image description here

答案 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