平滑shapefile输出-Basemap python

平滑shapefile输出-Basemap python,python,matplotlib,gis,shapefile,matplotlib-basemap,Python,Matplotlib,Gis,Shapefile,Matplotlib Basemap,我正在处理一个形状文件。我没有任何问题,阅读它,绘制它,使地图好看。但是,当我绘制它时(使用QGIS将其重新投影到正确的EPSG后),边缘都是锯齿状的(如下所示)。有没有一种方法可以使用Python平滑它 对于这些ShapeFile。的回答解释了Shapely软件包是如何基于Douglas Puecker算法简化方法的 import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemap from matplotlib.

我正在处理一个形状文件。我没有任何问题,阅读它,绘制它,使地图好看。但是,当我绘制它时(使用QGIS将其重新投影到正确的EPSG后),边缘都是锯齿状的(如下所示)。有没有一种方法可以使用Python平滑它

对于这些ShapeFile。

的回答解释了Shapely软件包是如何基于Douglas Puecker算法简化方法的

import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
from matplotlib.patches import Polygon
from matplotlib.collections import PatchCollection
import numpy as np

#insert code for basemap setup m = Basemap(...)
m.arcgisimage(service = 'ESRI_StreetMap_World_2D', xpixels = 1000, verbose = True)
states_info = m.readshapefile('shapefiles/states', 'states')
spc_info = m.readshapefile('shapefiles/corrected_epsg', 'spc', drawbounds = False)

patches = []
ax = plt.gca()

for info, shape in zip(m.spc_info, m.spc):
    x, y = zip(*shape)
    if info['DN'] == 2: 
        color = '#80c580'
        zorder = 2
        patches.append( Polygon(np.array(shape), True))
    if info['DN'] == 5: 
        color = '#f7f780'
        zorder = 3
        patches.append( Polygon(np.array(shape), True))
    ax.add_collection(PatchCollection(patches, facecolor= color, zorder=zorder, alpha = 0.7))