Colors 在Gnuplot中回收调色板

Colors 在Gnuplot中回收调色板,colors,gnuplot,palette,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]中的数

我需要构建一个只有少数颜色的离散调色板颜色,例如:

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”。 当然,可以通过对数据文件进行编码来完成,但我会丢失原始信息


有没有办法定义这种循环调色板?

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

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

您能否澄清您的问题,并提供您迄今为止尝试过的数据/示例?看一看以供参考。@ViniciusPlacco,我已经编辑了我的问题。亲爱的@Ethan,你的建议几乎奏效了!我做了一个小修改:splot$data matrix u1:2:floor$3%4==0?4:floor$3%4,现在有图像,当数据值是4的倍数时,将过滤为4。非常感谢。