在 Gnuplot 中回收调色板
Recycling a color palette in Gnuplot
我需要构建一个只有几种颜色的离散调色板颜色,比如说:
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'。
当然,这可以通过对数据文件进行一些编码来完成,但我会丢失原始信息。
有没有办法定义这样的"recycling palette"?
保留调色板的原样,并在数据输入阶段应用循环重复。原始命令:
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()%4) with image
我需要构建一个只有几种颜色的离散调色板颜色,比如说:
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'。 当然,这可以通过对数据文件进行一些编码来完成,但我会丢失原始信息。
有没有办法定义这样的"recycling palette"?
保留调色板的原样,并在数据输入阶段应用循环重复。原始命令:
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()%4) with image