GNUPLOT 编织调色板匹配热图
GNUPLOT splot color palete matching jetmap
我正在尝试在 gnuplot 中重现 rosenbrock 函数的下图。来源 Wikipedia.
我的理解是图像是使用 Matlab/Matplotlib 中的 JET 颜色图创建的。
这是我在 gnuplot 中的尝试。宏 MATLAB 来源于 here and Macro JET was sourced from here.
我认为将 orange/yellow 一直降低到 500 会有所帮助。我不确定如何在 gnuplot 中执行此操作。
另外 size
重现 MATLAB
之类的视图会是什么?
reset session
set terminal wxt size 800,600 enhanced font 'Verdana,10' persist
set view 50,330
set isosample 30
set xlabel "x"
set ylabel "y"
set zlabel "f(x,y)" rotate
set pm3d
set macros
JET="define (0 0 0 0.5, 1./8 0 0 1, 3./8 0 1 1, 5./8 1 1 0, 7./8 1 0 0, 1 0.5 0 0)"
MATLAB = "defined (0 0.0 0.0 0.5, \
1 0.0 0.0 1.0, \
2 0.0 0.5 1.0, \
3 0.0 1.0 1.0, \
4 0.5 1.0 0.5, \
5 1.0 1.0 0.0, \
6 1.0 0.5 0.0, \
7 1.0 0.0 0.0, \
8 0.5 0.0 0.0 )"
set palette @JET
splot [x=-2:2] [y=-1:3] (1-x)**2+100*(y-x**2)**2 with pm3d notitle
set output
颜色映射
如果您将颜色映射更改为对数刻度,我认为您将达到大部分目标,
如果您调整调色板范围的下限,剩下的就是:
# ... as above ...
set log cb
set cbrange [0.1 : *]
unset mcbtics
replot
边界框
gnuplot 版本 5.4:
set wall x1 fillcolor "gray90"
set wall y1 fillcolor "gray90"
set wall z0 fillcolot "gray50"
set xyplane at 0
set border 127
set grid vertical
replot
我正在尝试在 gnuplot 中重现 rosenbrock 函数的下图。来源 Wikipedia.
我的理解是图像是使用 Matlab/Matplotlib 中的 JET 颜色图创建的。
这是我在 gnuplot 中的尝试。宏 MATLAB 来源于 here and Macro JET was sourced from here.
我认为将 orange/yellow 一直降低到 500 会有所帮助。我不确定如何在 gnuplot 中执行此操作。
另外 size
重现 MATLAB
之类的视图会是什么?
reset session
set terminal wxt size 800,600 enhanced font 'Verdana,10' persist
set view 50,330
set isosample 30
set xlabel "x"
set ylabel "y"
set zlabel "f(x,y)" rotate
set pm3d
set macros
JET="define (0 0 0 0.5, 1./8 0 0 1, 3./8 0 1 1, 5./8 1 1 0, 7./8 1 0 0, 1 0.5 0 0)"
MATLAB = "defined (0 0.0 0.0 0.5, \
1 0.0 0.0 1.0, \
2 0.0 0.5 1.0, \
3 0.0 1.0 1.0, \
4 0.5 1.0 0.5, \
5 1.0 1.0 0.0, \
6 1.0 0.5 0.0, \
7 1.0 0.0 0.0, \
8 0.5 0.0 0.0 )"
set palette @JET
splot [x=-2:2] [y=-1:3] (1-x)**2+100*(y-x**2)**2 with pm3d notitle
set output
颜色映射
如果您将颜色映射更改为对数刻度,我认为您将达到大部分目标, 如果您调整调色板范围的下限,剩下的就是:
# ... as above ...
set log cb
set cbrange [0.1 : *]
unset mcbtics
replot
边界框
gnuplot 版本 5.4:
set wall x1 fillcolor "gray90"
set wall y1 fillcolor "gray90"
set wall z0 fillcolot "gray50"
set xyplane at 0
set border 127
set grid vertical
replot