我想在调色板中定义特定颜色的范围:
例如:
set pm3d;
set pm3d map;
splot x*y;
给予:
我想把红色从-50开始到50。我该怎么做?
发布于 2014-06-04 20:29:04
对于标准的gnuplot调色板,您可以实现如下所示:
定义gnuplot的标准调色板的红色、绿色和蓝色值的函数是
red(x) = sqrt(x)
green(x) = x**3
blue(x) = sin(2*pi*x)
请参阅show palette
以查看使用了哪些函数(rgb color mapping by rgbformulae are 7,5,15
)。使用show palette rgbformulae
,您可以找到哪些函数与此数字相关联。
所以你的例子相当于
red(x) = sqrt(x)
green(x) = x**3
blue(x) = sin(2*pi*x)
set palette functions red(gray), green(gray), blue(gray)
set pm3d map
splot x*y
现在,您可以将映射函数应用到gray
值。此函数必须将原始的灰度范围[0:1]
映射到范围[0:1]
中的新的灰度范围,例如
map(x) = (x < 0.25 ? 2*x : (x > 0.75 ? 2*x - 1 : 0.5))
red(x) = sqrt(x)
green(x) = x**3
blue(x) = sin(2*pi*x)
set palette functions red(map(gray)), green(map(gray)), blue(map(gray))
set pm3d map
splot x*y
测试调色板定义的一个好方法是使用test palette
map(x) = (x < 0.25 ? 2*x : (x > 0.75 ? 2*x - 1 : 0.5))
red(x) = sqrt(x)
green(x) = x**3
blue(x) = sin(2*pi*x)
set palette functions red(map(gray)), green(map(gray)), blue(map(gray))
test palette
https://stackoverflow.com/questions/24046533
复制相似问题