【问题标题】:How to properly handle 3D data and create heatmaps in gnuplot 4.6?如何在 gnuplot 4.6 中正确处理 3D 数据并创建热图?
【发布时间】:2014-11-10 17:26:58
【问题描述】:

我有几天内来自八个不同非等距深度的温度数据,我想将其绘制为热图。据我所知,我有两个选择。我可以使用“带图像”,但假设点是等距的,这样只有 8 像素的细条,或者我可以使用需要适当网格的 pm3d(我不确定什么是适当的网格)。我发现 dgrid3d 可以为我制作网格,但由于某种原因消除了对深度的任何依赖。有人可以向我解释这种行为吗? 这是我使用的代码和数据。 https://docs.google.com/file/d/0B2TfUgjtGRVReV9ocFVvM1BKd2M

set timefmt "%Y-%m-%d %H:%M:%S"
set xdata time

set view map
set dgrid3d

splot './Data/MO-03t_.txt' every ::2 u 1:3:4 with pm3d

【问题讨论】:

    标签: gnuplot heatmap


    【解决方案1】:

    dgrid3d 不会绘制 您的 数据。相反,像二维样条这样的东西是从您的数据中计算出来的。然后,gnuplot 创建一个(默认情况下)10x10 矩阵,并用从样条线插值的值填充它。然后绘制这个矩阵。

    但我还有其他解决方案:

    set timefmt "%Y-%m-%d %H:%M:%S"
    set xdata time
    
    # for the nice colors
    set pm3d
    
    # For debugging: place ticmarks only vor values with data 
    set ytics (0.02, 0.04, 0.06, 0.11, 0.31, 0.41, 0.61, 0.91)
    
    plot  './Data/MO-03t_.txt' every ::2 u 1:3:(1800):($3<0.2?.005:0.05):4  w boxxyerrorbars fs solid lc palette
    

    boxxerrorbars ... lc palette 采用 using &lt;x&gt;:&lt;y&gt;:&lt;deltaX&gt;&lt;deltaX&gt;:&lt;z&gt;

    delta 值是框宽度的一半,即,这意味着为每个数据点绘制一个从 x-deltaX;y-deltaY 到 x+deltaX;y+deltaY 的框。

    这里,框的宽度是 3600 秒,高度是 0.1 或 0.01,取决于 y 值。

    结果如下:

    但是,您仍然可以提高框的高度。

    除了 4+1 列之外,您还可以传递 6+1 列与

    using &lt;x&gt;:&lt;y&gt;:&lt;xlow&gt;:&lt;ylow&gt;:&lt;xhigh&gt;:&lt;yhigh&gt;:&lt;z&gt;

    这里,框的边界以绝对值的形式给出,而不是与 x-y 值的距离。

    【讨论】:

    • 谢谢,这可能比弄乱样条线更好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 2017-09-04
    • 1970-01-01
    • 2019-09-18
    相关资源
    最近更新 更多