【问题标题】:Overlay Heatmap onto a contour map of different sizes将热图叠加到不同大小的等高线图上
【发布时间】:2022-01-03 05:40:03
【问题描述】:

我想用 python 将热图叠加到等高线图上。这两个图像来自 numpy 数组,它们的大小不同。我需要在等高线图上的特定位置覆盖第二张图像,我还必须放大图,以便热图中的 1 个像素对应于等高线图中的 1.3 个像素。如何做到这一点?

我想制作类似我在 matplotlib 中创建的东西 Sample Image 编辑 这是我目前的进展

【问题讨论】:

    标签: plot plotly overlay heatmap


    【解决方案1】:
    • 如果没有样本数据/生成器函数,就不可能完全回答您的问题
    • 下面显示了如何在等高线轨迹上叠加热图
    import numpy as np
    import plotly.express as px
    import plotly.graph_objects as go
    
    def f(x, y):
        return np.sin(x) ** 10 + np.cos(10 + y * x) * np.cos(x)
    
    x = np.linspace(0, 5, 50)
    y = np.linspace(0, 5, 40)
    
    X, Y = np.meshgrid(x, y)
    Z = f(X, Y)
    
    fig = go.Figure(data=
        go.Contour(
            z=f(X,Y),
            contours_coloring='lines',
            line_width=2,
            coloraxis="coloraxis2"
        )
    )
    
    fig.add_traces(px.imshow(Z[:][:]).data).update_layout(coloraxis_showscale=False)
    

    【讨论】:

    • 谢谢这对开始很有帮助,我会添加更多信息,如果你不介意,也许你可以提供更多帮助,数据数组很大,所以我会附上一张图片并说明它们的尺寸。热图为 120x120,轮廓为 ~400x550。我需要热图的中心与等高线图的中心重叠。我还需要将热图放大一定比例,为了您的帮助,让我们说 1.5 倍。在我的解释不清楚的情况下,这些是来自同一星系的不同望远镜的两张图像,在无线电和光学波段,我想覆盖这些图像。
    • 我会更新我原来的帖子来展示我现在的身材。
    • 使用matplotlib,这是使用extent完成的,是否有一个相当于plotly的extent?
    猜你喜欢
    • 1970-01-01
    • 2021-12-21
    • 2023-02-04
    • 2015-01-08
    • 1970-01-01
    • 2020-09-24
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多