【问题标题】:Python Heat Distribution PlottingPython 热分布图
【发布时间】:2019-02-22 18:28:40
【问题描述】:

我一直在尝试模拟空间中的流量分布,但无法弄清楚如何在 python 中使用 matplotlib、seaborn、plotly 等正确地做到这一点。

我有 3 个变量

X : 0 到 0.4 (网格到 142 片)

Y : 0 到 0.45(网格到 17767 个)

T : 值从 300 开尔文开始,沿房间分布 (142x17767)

为了解释更多,我有一个 142x17767 的矩形区域,我想在每个点上绘制热分布。我已经从 matplotlib 中尝试过 seaborn 的热图和 hist2d,但是这些方法要求 x 和 y 维度具有相同的长度。

【问题讨论】:

    标签: python plot heatmap distribution fluid-dynamics


    【解决方案1】:

    我认为你需要的是pcolormesh。这是一个示例答案。您可以将下面的T 替换为您的实际 T 值。您收到错误的原因是因为在这样的 2d 热图上,您需要创建 x 和 y 点的网格。

    import numpy as np
    import matplotlib.pyplot as plt
    
    fig, ax = plt.subplots(figsize=(6,6))
    
    X = np.linspace(0, 0.4, 142)
    Y = np.linspace(0, 0.45, 17767)
    
    Xmesh, Ymesh = np.meshgrid(X,Y)
    
    T = np.random.randint(300, 1000, Xmesh.shape)
    
    plt.pcolormesh(X, Y, T)
    plt.colorbar()
    plt.show()
    

    【讨论】:

    • 谢谢!这种方法做了我想要的。但实际上,如果我可以在 300-350 之间缩放颜色图的灵敏度,那就太好了,因为地图上有一个区域使温度等于零,这导致缩放在 0-350 之间,所以 300-350 之间的变化是不是很明显。有没有办法解决这个问题?
    • @TolgaOĞUZ:尝试在 plt.pcolormesh 中传递 vmin=300, vmax=350
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 2020-08-04
    • 1970-01-01
    • 2013-09-24
    • 2018-12-21
    • 2016-12-04
    相关资源
    最近更新 更多