如何使用python绘制地图

时间:2014-08-06 23:50:39

标签: python map contour

我想使用python绘制地图,而不是真正的完整信息地图,只是将一系列小形状聚集在一起以反映土地使用情况。

数据如下所示

1 2 2 3 3 2
2 3 3 1 1 2
1 1 1 1 3 3
3 3 3 3 4 1

每个数字代表一种土地利用类型。它们在矩阵中的位置是它们的坐标。

之前我使用过VBA,整个地图都包含许多代表土地使用的小方形,但由于数据太大,生成地图需要很长时间,也会删除地图。

我的问题是:

  1. 我想知道在python中,有没有更快的方法来生成这种地图,作为一个整体,不是一系列形状,我认为会更快?

  2. 我尝试过使用contourf,如下所示,但是它表示“超出了轴1的界限”,但实际上,我打印了X,Y和cordi,它们具有相同的形状,为什么还会出界?

    y = np.arange(0, 4 , 1)
    x = np.arange(0, 6 , 1)
    X,Y = np.meshgrid(x,y)
    
    # cordi is the matrix containing all the data
    # pyplot is imported before
    
    plt.contourf(X,Y, Cordi[X,Y], 8, alpha=.75, cmap='jet')
    
  3. 非常感谢您的回答!

1 个答案:

答案 0 :(得分:0)

使用imshow怎么样,产生类似热图的东西。这是一个例子:

In [1]: import numpy as np
In [2]: import matplotlib.pyplot as plt
In [3]: coord_data = np.array([[1, 2, 2, 3, 3, 2], [2, 3, 3, 1, 1, 2], 
                               [1, 1, 1, 1, 3, 3], [3, 3, 3, 3, 4, 1]])
In [4]: map = plt.imshow(coord_data)
In [5]: plt.colorbar(map)
Out[5]: <matplotlib.colorbar.Colorbar instance at 0x7f3df2559c20>
In [6]: plt.show()

enter image description here

您可以使用interpolation关键字(examples)指定插值级别,使用cmap关键字(example colormaps)指定颜色。

如果您不使用interpolation='nearest',具有相同值的相邻数据点将看起来像轮廓。