【发布时间】:2020-01-08 16:19:39
【问题描述】:
我想使用三个独立的向量 x、y 和 z 绘制热图。我查看了互联网上的示例,其中大多数展示了如何为表示为 2D 矩阵的 x、y 和 z 绘制热图
那么,有人可以帮我了解如何将 3 个独立向量转换为 2d 矩阵,我最终可以用它来绘制热图
我想到的一件事是通过首先离散化并按升序排列 x 和 y 并在新的“x”和“y”组合处找到 z 来创建矩阵。但是,可能存在由于插值期间缺少数据而无法计算“z”的情况
我有点迷茫,想寻求这方面的帮助
【问题讨论】:
-
我投票结束这个,它太宽泛和模糊了。 OP,您可能需要指南/教程或文档。
-
@ImportanceOfBeingErnest :感谢您的链接。我从中取出了一些有价值的东西。我现在已经设法使用 griddata 和 meshgrid 创建了一个插值矩阵“z”作为“x”和“y”的函数。等高线图工作正常,但我仍然需要做热图现在,我尝试使用 seaborn 包。该命令非常简单 sns.heatmap(yourmatrix)。但问题是创建的热图在轴上的索引从 1 到 n(其中 n 是元素的数量)而不是“x”和“y”值。因此,热图没有意义。任何解决方法?
-
不要使用 seaborn。 matplotlib 的
imshow或pcolormesh都可以。 -
@ImportanceOfBeingErnest :非常感谢您的提示。我尝试了 pcolormesh,就像这样 - plt.pcolormesh(zi)。但是您知道如何输入有关“x”和“y”的信息,因为没有它,热图将没有任何意义,因为它是针对轴绘制的,轴是从 1 到“x”中值的最大数量和“是”
标签: python numpy matplotlib heatmap