Gnuplot 将调色板定义为rgb变量

Gnuplot 将调色板定义为rgb变量,gnuplot,Gnuplot,使用调色板可以轻松创建颜色渐变 set view map set samp 50,50 set palette defined (0 "blue", 1 "green", 2 "red") spl "++" us 1:2:1 palette pt 5 现在我想在垂直方向应用透明度。选项lc rbg变量通过alpha通道支持透明度另请参见: 但是如何将调色板颜色转换为rgb颜色呢 第二个问题:尽管我在samp中指定了50行,但为什么我只得到10行水平行?还要检查以下内容: 首先,您可以检查定义

使用调色板可以轻松创建颜色渐变

set view map
set samp 50,50

set palette defined (0 "blue", 1 "green", 2 "red")
spl "++" us 1:2:1 palette pt 5
现在我想在垂直方向应用透明度。选项lc rbg变量通过alpha通道支持透明度另请参见:

但是如何将调色板颜色转换为rgb颜色呢

第二个问题:尽管我在samp中指定了50行,但为什么我只得到10行水平行?

还要检查以下内容:

首先,您可以检查定义的调色板正在执行的操作:

set palette defined (0 "blue", 1 "green", 2 "red")
test palette
您将获得以下信息:

每个通道R、G、B都有一个输入范围为[0:1]和输出范围为[0:1]的功能。在这种情况下,它是一个线性梯度

因此,您必须定义这样一个函数,并使用位移位将通道与透明度alpha通道放在一起,请参见帮助运算符二进制

调色板的好处在于gnuplot关注范围。在这里,您必须提前知道最小值和最大值,并相应地缩放颜色。你可以使用统计数据

代码:

结果:

还请检查以下内容:

首先,您可以检查定义的调色板正在执行的操作:

set palette defined (0 "blue", 1 "green", 2 "red")
test palette
您将获得以下信息:

每个通道R、G、B都有一个输入范围为[0:1]和输出范围为[0:1]的功能。在这种情况下,它是一个线性梯度

因此,您必须定义这样一个函数,并使用位移位将通道与透明度alpha通道放在一起,请参见帮助运算符二进制

调色板的好处在于gnuplot关注范围。在这里,您必须提前知道最小值和最大值,并相应地缩放颜色。你可以使用统计数据

代码:

结果:


首先简单回答:当存在二维采样时,无论是自动从splot还是显式从绘图“+”,第一维中的样本数量由set sample控制,第二维中的样本数量由set isosample控制

现在是更难的一个。在当前5.2.8版本的gnuplot中,不能直接向调色板添加透明度。但是,您可以经历一个多步骤的过程,将调色板保存到文件或数据块中,然后将其作为RGB颜色数组读回。拥有该阵列后,您可以添加alpha通道值,以便它也表示透明度。我将使用命令测试调色板创建的数据块来显示这个过程。在旧版本的gnuplot中,您可能需要使用set print palete.save创建的文件;显示调色板256

输出如下所示。

如您所见,所需的命令序列非常混乱。 在下一个gnuplot版本5.4中,这将更加容易。新版本将提供一个函数palettez,可将当前调色板直接转换为压缩RGB值。请注意,palette函数不在-rc1测试版本中,而是在-rc2中。因此,在5.4版中,所有调色板/阵列/RGB操作都可以替换为

  plot '++' using 1:2:(palette($2) + (int($2)<<24)) with points pt 5 lc rgb variable

首先简单回答:当存在二维采样时,无论是自动从splot还是显式从绘图“+”,第一维中的样本数量由set sample控制,第二维中的样本数量由set isosample控制

现在是更难的一个。在当前5.2.8版本的gnuplot中,不能直接向调色板添加透明度。但是,您可以经历一个多步骤的过程,将调色板保存到文件或数据块中,然后将其作为RGB颜色数组读回。拥有该阵列后,您可以添加alpha通道值,以便它也表示透明度。我将使用命令测试调色板创建的数据块来显示这个过程。在旧版本的gnuplot中,您可能需要使用set print palete.save创建的文件;显示调色板256

输出如下所示。

如您所见,所需的命令序列非常混乱。 在下一个gnuplot版本5.4中,这将更加容易。新版本将提供一个函数palettez,可将当前调色板直接转换为压缩RGB值。请注意,palette函数不在-rc1测试版本中,而是在-rc2中。因此,在5.4版中,所有调色板/阵列/RGB操作都可以替换为

  plot '++' using 1:2:(palette($2) + (int($2)<<24)) with points pt 5 lc rgb variable

谢谢。为了在第二维度显示透明度效果,我建议使用ARGBa,c=intaThx。为了在第二维度显示透明度效果,我建议使用ARGBa,c=inta
  plot '++' using 1:2:(palette($2) + (int($2)<<24)) with points pt 5 lc rgb variable