【问题标题】:gnuplot pm3d and splot heat map with disorganised data数据混乱的 gnuplot pm3d 和 splot 热图
【发布时间】:2021-08-13 17:20:17
【问题描述】:

我曾经用 gnuplot 制作漂亮的 pm3d 地图,代码如下:

set pm3d map
set palette
splot data using 1:2:3

但是 data 的组织如下:

1 1 1
1 2 1
1 3 2

2 1 1
2 2 3
2 3 4

3 1 1
3 2 1
3 3 3

我从来没有真正理解在这里换行的必要性,但它确实有效。现在我的数据就大不一样了,第一列和第二列的数据不是像这样简单重复的:

1.1 -1 2
1.2 3 3
1.11 4 4
...

我没有任何换行符,因为我不知道应该如何组织它们。问题是,我将如何从中制作热图? (四舍五入不是一个好的选择)

一些样本数据可以在here找到。它们是从原始的 21x21 数组创建的(见下文)。

一些背景

最初,数据位于以整数索引的表中。它基本上是月球表面的极地立体投影。因此,我将索引转换为(x,y)距离,然后转换为以平面为中心的(纬度,经度)对,然后转换为在与一个极点不同的点上居中的日光极坐标。我想将地图显示为距离(x 轴)和方位角(y 轴)(从新的中心点开始)和一些值(地图的颜色)。目标是拥有如下所示的内容:

【问题讨论】:

    标签: gnuplot


    【解决方案1】:

    您链接到的示例数据是高度结构化的,但不是在正交网格上。这很可能会产生伪影。如果数据足够密集,您可以简单地将每个点绘制为实心块,可能具有部分透明度。但是,您显示的示例数据不是很密集,因此这可能不合适。我在下面展示了这样一个图以供参考。

    set palette defined ( 0 "blue", 3 "green", 6 "yellow", 10 "red" )
    set autoscale noextend
    set pointsize 2
    unset key
    plot 'DT0C2.dat' using 1:2:3 with points pointtype 5 lc palette
    

    最接近 gnuplot 处理非结构化样本的是dgrid3d 模式。这基本上使用数据点为正交网格上的附近节点分配值。可以使用各种加权方案来控制有多少数据点对每个节点有贡献以及它们的相对贡献是多少。结果很大程度上取决于为正交网格间距和加权方案选择合理的值。我不会尝试在这里描述所有选项。请阅读set dgrid3d 上的 gnuplot 文档部分。这是一个粗略的尝试,但我想更好地理解数据以选择一个好的 dgrid3d 方案。我认为样本数据不够密集,无法产生平滑的结果。

    set palette defined ( 0 "blue", 3 "green", 6 "yellow", 10 "red" )
    set autoscale noextend
    set dgrid3d 75,75 gauss 100,25
    set view map
    splot 'DT0C2.dat' with pm3d
    

    【讨论】:

    • 谢谢。只是为了解释,数据应该基本上是从某个点看到的角度高程图。第一列是径向距离,第二列是晷投影北方向的方位角。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多