【问题标题】:Symmetric axes in gnuplotgnuplot中的对称轴
【发布时间】:2013-05-21 07:49:26
【问题描述】:

我想用gnuplot画一个等高线图,在这里我想用特殊的颜色指出一些特殊的特征。

我定义了等高线图

set pm3d map
set palette defined (-1 "red", -0.1 "red", 0 "white", 0.1 "blue", 1 "blue")

这导致颜色渐变具有从红色到白色到蓝色的渐变的小区域,其余部分为红色表示负数,蓝色表示正数。

我现在的问题是,我想将 gnuplot 自动设置为 z 轴的对称缩放。但是通过指定 splot [][][-200:200] 'data' u 1:2:3 和一个数据集,其值来自例如-300 到 100 gnuplot 会自动重新缩放到 [-200:100],这会导致我的色阶未对齐(白色区域现在约为 -50)。

有没有办法强制zrange 或获得自动对称的缩放轴?

【问题讨论】:

    标签: gnuplot


    【解决方案1】:

    我不确定我是否理解这个问题,但您是否考虑过:

    set cbrange [-200:200]
    

    来自文档:

    `set cbrange` 命令设置使用颜色着色的值的范围 当前的“调色板”,按样式“带 pm3d”、“带图像”和“带调色板”。 颜色范围之外的值使用最接近的颜色。

    【讨论】:

    • 这正是我所需要的。谢谢!
    【解决方案2】:

    要强制 z 范围,请尝试

    set zr [-200:200]
    

    在你的 plot 命令之前。要自动缩放轴,您可能可以使用stats 进行烹饪。主要技巧是记住颜色条是相对单位。像这样的东西(未经测试):

    datafile = 'data.dat'
    
    stats datafile u 3 nooutput
    
    # assume you want some data positive and some negative
    if (stats_max*stats_min > 0) {
     print 'WARNING: all data has same sign.  Color bars may be weird.'
    }
    
    z0 = -1*min(abs(0.1*stats_min),abs(0.1*stats_max))
    z1 = 0.0
    z2 = -1*z0
    
    set palette defined (stats_min "red", z0 "red", z1 "white",
                         z2 "blue", stats_max "blue")
    

    【讨论】:

    • 命令set zr [-200:200] 不起作用。您可以尝试使用set pm3d map,然后使用splot [-10:10][-10:10][] 5+10*sin(x)。这确实总是导致 zrange 从 -6 到 16。另一种方法看起来很有希望。我稍后会试试这个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多