我经常发现自己需要使用 matplotlib 在 Python 中创建热图样式的可视化。 Matplotlib 提供了几个显然做同样事情的函数。建议使用
pcolormesh
而不是 pcolor
,但是 imshow
和 pcolormesh
之间有什么区别(从数据绘图仪的实际角度来看)?与另一种相比,使用一种的优点/缺点是什么?在什么情况下,其中一方会成为明显的赢家?
从根本上来说,
imshow
假设数组中的所有数据元素都以相同的大小呈现,而pcolormesh
/pcolor
将数据数组的元素与矩形元素相关联,矩形元素的大小可能会在矩形网格上变化。
如果网格元素是均匀的,则插值设置为“最近”的
imshow
看起来与默认的 pcolormesh
显示非常相似(没有可选的 X
和 Y
参数)。明显的区别是 imshow
y 轴将反转(w.r.t. pcolormesh
)并且纵横比保持不变,尽管这些特性也可以更改为看起来像 pcolormesh
输出。
从实际角度来看,如果您想将数据数组可视化为单元格,尤其是当矩形网格不均匀或您想绘制单元格的边界/边缘时,
pcolormesh
会更方便。否则,如果您有固定的像元大小、想要保持宽高比、想要控制像素插值或想要直接指定 RGB 值,imshow
会更方便。