python画地球_使用Python在Matplotlib底图中将自然地球形状绘制为多边形

我接近得到我想要的 Map . Matplotlib的底图非常棒,但是当我放大时海岸线太粗糙了 . 我可以阅读自然地球的形状文件并绘制它们,这些更好......但是当我尝试填充多边形时,我认为它正在处理所有的点属于单个多边形 . 如何迭代多边形并正确显示 Map ?

提前致谢!

这是代码:

import numpy as np

from mpl_toolkits.basemap import Basemap

import matplotlib.pyplot as plt

from matplotlib.patches import Polygon

from matplotlib.collections import PatchCollection

%matplotlib inline

landColor, coastColor, oceanColor, popColor, countyColor = '#eedd99','#93ccfa','#93ccfa','#ffee99','#aa9955'

fig = plt.figure()

ax = fig.add_subplot(111)

s = 1900000

m = Basemap(projection='ortho',lon_0=-86.5,lat_0=30.3,resolution='l',llcrnrx=-s,llcrnry=-s,urcrnrx=s,urcrnry=s)

m.drawmapboundary(fill_color=oceanColor) # fill in the ocean

# generic function for reading polygons from file and plotting them on the map. This works with Natural Earth shapes.

def drawShapesFromFile(filename,facecolor,edgecolor,m):

m.readshapefile(filename, 'temp', drawbounds = False)

patches = []

for info, shape in zip(m.temp_info, m.temp): patches.append( Polygon(np.array(shape), True) )

ax.add_collection(PatchCollection(patches, facecolor=facecolor, edgecolor=edgecolor, linewidths=1))

# read the higher resolution Natural Earth coastline (land polygons) shapefile and display it as a series of polygons

drawShapesFromFile('\\Conda\\notebooks\\shapes\\ne_10m_coastline',landColor,coastColor,m)

drawShapesFromFile('\\Conda\\notebooks\\shapes\\ne_10m_urban_areas',popColor,'none',m)

m.drawcounties(color=countyColor)

plt.gcf().set_size_inches(10,10)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值