在Gnuplot中回收调色板

时间:2019-04-11 13:21:58

标签: colors gnuplot palette

我需要构造仅包含几种颜色的离散调色板颜色,例如:

set palette defined (0 'red', 1 'red', 1 'green',\ 
                     2 'green', 2 'blue', 3 'blue',\
                     3 'yellow', 4 'yellow')

,这将被应用特定次数到唯一的矩阵数据文件中,即通过回收调色板。假设矩阵数据文件的范围是从0到16的整数数据。调色板将被应用四次:首先,用于[0:4]中的数据;第二,对于[4:8],第三,对于[8:12],第四,对于[12:16]。我期望的最终结果是具有四种颜色的热图(2D图像)。

我尝试了以下调色板:

set palette defined ( (k%4==0)'red',   (k%4==1)'red',\
                      (k%4==1)'green', (k%4==2)'green',\
                      (k%4==2)'blue',  (k%4==3)'blue',\
                      (k%4==3)'yellow',(k%4==4)'yellow' )

其中“ k”是矩阵数据文件的元素。我的问题是定义“ k”。 当然,可以通过对数据文件进行一些编码来完成此操作,但是我将丢失原始信息。

有什么方法可以定义这种“回收调色板”吗?

1 个答案:

答案 0 :(得分:1)

让调色板保持原样,并在数据输入阶段应用循环重复。原始命令:

set cbrange [0:4]
set view map
splot $data matrix using 1:2:3 with image

数据值经过过滤,以循环通过映射到[0:4]的调色板

splot $data matrix using 1:2:(floor($3)%4) with image