Python在底图上绘制形状文件

Python在底图上绘制形状文件,python,matplotlib,shapefile,matplotlib-basemap,Python,Matplotlib,Shapefile,Matplotlib Basemap,我正在使用python 3.6绘制一个包含美国大流域的形状文件。我遇到的问题是,这个形状文件有许多组件,例如.dbf文件、.prj文件。。。等等。我不确定是否必须单独读取所有文件,然后进行打印,或者是否有一个命令允许我一次读取所有文件,然后进行打印 以下是我目前的代码: from mpl_toolkits.basemap import Basemap import matplotlib.pyplot as plt mydbf =('filename.dbf') myprj =('filena

我正在使用python 3.6绘制一个包含美国大流域的形状文件。我遇到的问题是,这个形状文件有许多组件,例如.dbf文件、.prj文件。。。等等。我不确定是否必须单独读取所有文件,然后进行打印,或者是否有一个命令允许我一次读取所有文件,然后进行打印

以下是我目前的代码:

from mpl_toolkits.basemap import Basemap

import matplotlib.pyplot as plt

mydbf =('filename.dbf')
myprj =('filename.prj')
myqpj =('filename.qpj')
myshp =('filename.shp')
myshx =('filename.shx')


map= Basemap(projection='cyl',
            lon_0=180,
            lat_0=0,
            resolution='l')
map.drawmapboundary(fill_color='aqua')
map.fillcontinents(color='#ddaa66',lake_color='aqua')
map.drawcoastlines()

map.readshapefile(mydbf,myprj,myqpj,myshp,myshx,'Watersheds')
plt.show()
运行此代码时收到的错误消息是:
OSError:在on readthedocs中找不到filename.dbf.shp
,它清楚地说明了
readshapefile
函数

第一个参数shapefile名称必须不带shp扩展名。该库假定所有shp、sbf和shx文件都将以该给定名称存在

因此,你的电话应该是

map.readshapefile("filename",'Watersheds')

我明白,但那只对一个人有效。所有文件的名称都完全相同,因此在不添加.shp或.dbf的情况下,它只打印一个文件。是的,您有一个shapefile
filename.shp
及其辅助文件
filename.sbf
filename.shx
。如果您有第二个文件,那将是
filename2.shp
及其辅助文件
filename2.sbf
filename2.shx
,您将像
map.readshapefile(“filename2”,“流域2”)一样重复阅读。