我一直在使用 GNUPLOT 制作二维图案图,但是,我需要颜色采用对数刻度,但只有颜色,而不是颜色列中的数值及其相应的抽动。有办法吗?
这里我有一个用于生成图像的数据文件的例子。 在 GNUPLOT 中,我使用以下命令(或脚本):
set size square 1,1
set cbrange [0:2]
set pm3d map
set palette defined ( 0 'gray30', 0.75 'gray20', 1.35 'cyan')
splot 'Sq.dat' with pm3d
在 gnuplot 控制台中检查
help palette
和 help palette functions
。
有选项functions
。对于每个颜色分量(R,G,B),您定义一个函数,该函数具有变量gray
作为输入(范围[0:1]
)并且应该具有范围[0:1]
作为输出。如果您键入test palette
,您可以检查调色板输出。
如果你所有的 R、G、B 函数都从
0
开始,这将是黑色的。如果 G 和 B 的函数在 1
结束并且 R 停留在 0
,这将是青色。
使用选项
set palette rgbformulae
时还有37个预定义功能:检查help palette rgbformulae
和show palette rgbformulae
。
例子:
# Linear:
set palette functions 0, gray, gray
test palette
# Square:
set palette functions 0, gray**2, gray**2
test palette
# Square Root:
set palette functions 0, sqrt(gray), sqrt(gray)
test palette
# Some logarithm: (play with x0)
f(x,x0) = log((x+x0)/x0)/log((1+x0)/x0)
x0 = 0.01
set palette functions 0, f(gray,x0), f(gray,x0)
test palette
添加:(您的数据带有
logscale cb
)
脚本:
### logscale cb
reset session
FILE = "SO76096868.dat"
set size ratio -1
set palette functions 0, gray**2, gray**2
# set palette rgbformulae 33,13,10 # alternatively, multiple colors
set view map
set logscale cb
set format cb "10^{%T}"
set xrange [:] noextend
set yrange [:] noextend
splot FILE u 1:2:3 w pm3d
### end of script
结果: