Matplotlib热图自动旋转图像

时间:2015-10-20 06:52:07

标签: python matplotlib

我有一系列坐标数据(纬度和经度)。

我设法从点的散点图中创建了一个漂亮的热图,但是图表似乎向右旋转了90度......我无法弄清楚为什么会发生这种情况。

import numpy as np
import numpy.random
import matplotlib.pyplot as plt
plt.style.use('ggplot')

x = coords.longtitude
y = coords.latitude

heatmap, xedges, yedges = np.histogram2d(x, y, bins=30)
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]

plt.imshow(heatmap, extent=extent)
plt.show(p)

这是结果: enter image description here

敏感的人可以看到荷兰的形象......只有旋转。

2 个答案:

答案 0 :(得分:2)

正如Jblasco所说,这是一个假数据的最小工作示例。

import numpy as np
import numpy.random
import matplotlib.pyplot as plt
p = plt.figure()
plt.style.use('ggplot')

np.random.seed(0)
x = np.random.rand(50)
y = np.random.rand(50)

heatmap, xedges, yedges = np.histogram2d(x, y, bins=4)
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]

plt.imshow(heatmap, extent=extent)
plt.show(p)

以下是包含np.histogram2d(x, y, bins=30)np.histogram2d(y, x, bins=30)

的图片

当然会旋转图像(实际上,它会转换图像)。因此,我也不理解你的问题。 enter image description here enter image description here

答案 1 :(得分:0)

来自the documentation of numpy.histogram2D

  

样本x和y的二维直方图。 x中的值沿第一维直方图,y中的值沿第二维直方图。

这与matplotlib的作用完全相反,其中第一个轴是垂直轴。我建议你在创建热图时转置x和y。