1

如何使用 gnuplot 绘制孤立点(非连接点):x 轴必须是第一列,即日期,y 轴是第二列,第三列必须是点的颜色(颜色定义为范围(例如:从 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
4

2 回答 2

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匹配的 和 值(此处16),因为通常调色板的值适合匹配颜色范围。

上面的脚本给出了结果:

在此处输入图像描述

于 2013-09-27T15:28:05.367 回答
0

一些解决方案可能是:

plot for [i=0:5] 'cp.txt' using ( i==$3 ? $1 : 1/0 ):2 notitle with points linestyle i
于 2013-09-27T13:28:24.167 回答