【问题标题】:How to fix RGB discrete color range irrespective of data in Gnuplot?如何修复 RGB 离散颜色范围而不考虑 Gnuplot 中的数据?
【发布时间】:2023-01-30 02:55:17
【问题描述】:

我正在尝试使用以下代码制作离散调色板:

set palette defined (0.0 "gray",0.1 "gray", 0.1 "blue", 0.33 "blue", 0.33 "green", 0.67 "green", 0.67 "red", 1.0 "red" )
plot 'Data.dat'u 1:2:3 palette

这是设置一个相对调色板,将 0 作为数据点中的最小值,将 1 作为数据点中的最大值。这意味着如果我在数据中的最大值是 0.2,那么它会使它变成红色,灰色达到 0.02(最大值的 10%)。

无论数据点如何,我都想将颜色范围固定为 0 到 1。这意味着如果数据的最大值为 0.2,则它应该是蓝色的,因为它落在 [0:0.33] 范围内。

请帮忙

【问题讨论】:

    标签: plot gnuplot palette


    【解决方案1】:

    我认为您误解了调色板在 gnuplot 中的工作方式。无论您如何定义颜色范围,它总是从 0 到 1。按轴坐标着色的图(“调色板 z”)请求从轴范围映射到调色板上的 [0:1],这在绘制数据时发生。如果您简单地说“用 pm3d 绘制数据”,这是默认设置,但还有许多其他着色策略可用。

    例如,要在 xyz = [1,2,3] 处创建一个由 0.6 的调色板分数着色的纯色圆

      set object 1 circle at 1,2,3 radius 0.1 
          fillstyle solid fillcolor palette fraction 0.6
    

    无论使用什么数字来定义调色板或数据的 x、y、z 值,这都会使您获得沿调色板方向 0.6 的颜色。

    我不完全了解您的数据是什么样子或您希望从中得到什么,但假设您知道第 4 列中的数值介于 0.0 和 0.2 之间,并且您希望将其映射到整个调色板范围 [0:1 ].这是一个例子。

    set palette defined (0 "white", 1 "dark-green")
    set cbrange [0:1]   # use full palette range even if the data doesn't fill it
    set style fill solid
    # Columns are x y z color
    splot DATA using 1:2:3:4 with pm3d fillcolor palette
    

    这有帮助吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-04
      • 2018-11-25
      • 1970-01-01
      • 2018-12-01
      • 1970-01-01
      相关资源
      最近更新 更多