如何使用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
答案 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 ''
结果是:
这要求您定义与颜色一样多的线条样式。
或者,您可以定义相应的调色板并使用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
的值匹配(此处为1
和6
),因为通常调色板的值适合于匹配颜色范围。
上面的脚本给出了结果:
答案 1 :(得分:0)
一些解决方案可能是:
plot for [i=0:5] 'cp.txt' using ( i==$3 ? $1 : 1/0 ):2 notitle with points linestyle i