如何使用gnuplot绘制彩色点

时间:2013-09-27 12:18:43

标签: date gnuplot

如何使用gnuplot绘制隔离点(非连接点): x轴必须是第一列,即日期, y轴是第二列 第3列必须是点的颜色(颜色定义为范围(例如:从1到3红色, 从4到6绿......)

1999-01-19  21  0
2009-07-01  0   1
2008-08-20  2   1
2008-12-18  1   1
2004-05-12  4   1
2009-07-29  2   1
2008-08-07  0   1
2006-03-08  1   1
2004-08-31  9   2
2001-03-27  12  2
2009-08-19  0   2
2010-07-14  2   3
2009-06-24  4   3
2009-11-11  33  4
2010-10-13  5   4
2012-02-22  34  4
2011-05-11  2   5

2 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点:

您可以定义多种线型,然后使用linecolor variable,这允许您将最后一列用作线型索引:

set timefmt '%Y-%m-%d'
set xdata time
set format x '%Y-%m'

set style increment user
set style line 1 lc rgb 'red'
set style line 2 lc rgb 'blue'
set style line 3 lc rgb 'green'
set style line 4 lc rgb 'magenta'
set style line 5 lc rgb 'yellow'

set style data points
plot 'data.txt' using 1:2:3 linecolor variable pt 7 ps 2 t ''

结果是:

enter image description here

这要求您定义与颜色一样多的线条样式。

或者,您可以定义相应的调色板并使用linecolor palette对点进行着色:

set timefmt '%Y-%m-%d'
set xdata time
set format x '%Y-%m'

set cbrange [1:6]
set palette defined (1 'red', 3.5 'red', 3.5 'green', 6 'green')

set style data points
unset colorbox
plot 'data.txt' using 1:2:3 linecolor palette pt 7 ps 2 t ''

使用此功能时,您必须注意,cbrange和用于palette defined的值匹配(此处为16),因为通常调色板的值适合于匹配颜色范围。

上面的脚本给出了结果:

enter image description here

答案 1 :(得分:0)

一些解决方案可能是:

plot for [i=0:5] 'cp.txt' using ( i==$3 ? $1 : 1/0 ):2 notitle with points linestyle i