【问题标题】:GNUPLOT splot color palete matching jetmapGNUPLOT splot 调色板匹配 jetmap
【发布时间】:2020-08-06 02:42:26
【问题描述】:

我正在尝试在 gnuplot 中重现以下 Rosenbrock 函数的图像。来源Wikipedia

我的理解是图像是在 Matlab/Matplotlib 中使用 JET 颜色图创建的。

这是我在 gnuplot 中的尝试。 Macro MATLAB 来自here,Macro JET 来自here

我认为将橙色/黄色一直降低到 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

【问题讨论】:

    标签: colors gnuplot surface colormap palette


    【解决方案1】:

    颜色映射

    如果您将颜色映射更改为对数比例,我认为您将大部分时间到达那里, 如果您调整调色板范围的下限,剩下的就是:

    # ... 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 的宽度 (x) 和长度 (y) 与原始图片相似。我尝试了很多,但纵横比似乎不起作用。 size调整宽度和长度的正确方法吗?
    • 你想要的命令大概是set view 50, 330, <scale_1>, <scale_2>。找到两个比例参数的适当值的最简单方法是使用鼠标中键单击并拖动。根据您的喜好调整内容,然后从工具栏上读取比例值或发出show view 命令。
    猜你喜欢
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 2019-07-03
    • 2013-07-22
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    相关资源
    最近更新 更多