matplotlib Basemap加载shp文件

简介: matplotlib Basemap加载shp文件

matplotlib是python中的一个画图插件;

matplotlib的介绍网址,参见百度百科:

https://baike.baidu.com/item/Matplotlib/20436231?fr=aladdin

matplotlib支持二维图的效果,也支持三维图的效果,在大数据的制作中,可以以地图为底,在旁边加上柱状图的效果,达到一个三维立体的效果,python现成的库有很多,这在开发中就比较方便,可以直接import进来使用。

matplotlib的Basemap中包含解析常用的shp格式矢量数据,通过读取shp文件,可以很方便的在Basemap上进行画图。
下边是根据Basemap的一个例子,说明如何读取shp,并将shp里的数据画在地图上:

#引用相应的类库

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap as Basemap
# 设置地图的坐标系和坐标显示范围
m = Basemap(llcrnrlon=-100.,llcrnrlat=0.,urcrnrlon=-20.,urcrnrlat=57.,
            projection='lcc',lat_1=20.,lat_2=40.,lon_0=-60.,
            resolution ='l',area_thresh=1000.) 
fig=plt.figure()
# 读取shp文件,注意第二个参数是shp文件在地图里的名称,接下来要用的.
shp_info = m.readshapefile('huralll020','hurall',drawbounds=False)
print(shp_info)
#在地图中找到shp文件,读取shp文件中的属性
names = []
for shapedict in m.hurall_info:
    cat = shapedict['CATEGORY']
    name = shapedict['NAME']
    if cat in ['H4','H5'] and name not in names:
        if name != 'NOT NAMED':  names.append(name)
print(names)
print(len(names))
# 根据属性,在地图上画图
for shapedict,shape in zip(m.hurall_info,m.hurall):
    name = shapedict['NAME']
    cat = shapedict['CATEGORY']
    if name in names:
        xx,yy = zip(*shape)
        # plot为在地图上画图
        if cat in ['H4','H5']: 
            m.plot(xx,yy,linewidth=1.5,color='r')
        elif cat in ['H1','H2','H3']:
            m.plot(xx,yy,color='k')
# 在地图上画其他辅助要素,国界,经纬度线等
m.drawcoastlines()
m.drawcountries()
m.drawmapboundary(fill_color='#99ffff')
m.fillcontinents(color='#cc9966',lake_color='#99ffff')
m.drawparallels(np.arange(10,70,20),labels=[1,1,0,0])
m.drawmeridians(np.arange(-100,0,20),labels=[0,0,0,1])
#设置图的标题
plt.title('Atlantic Hurricane Tracks (Storms Reaching Category 4, 1851-2004)')
plt.show()

image.png

相关文章
|
大数据 Python
matplotlib Basemap的3d效果
matplotlib Basemap的3d效果
111 0
|
定位技术 数据格式 Python
netcdf数据在matplotlib Basemap出图
使用python,将netcdf数据在matplotlib Basemap出图
128 0
|
定位技术 Python
绘图: matplotlib Basemap简介
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!   在数据可视化过程中,我们常常需要将数据根据其采集的地理位置在地图上显示出来。
1736 0
|
2天前
|
数据可视化 数据挖掘 Python
Python数据可视化:探索Matplotlib的强大功能
数据可视化在如今的数据分析和展示中扮演着至关重要的角色。本文将介绍Python中常用的数据可视化库Matplotlib,深入探讨其功能和应用,帮助读者更好地利用Matplotlib进行数据可视化。
|
2天前
|
机器学习/深度学习 数据可视化 数据处理
Python数据可视化:探索Matplotlib库的强大功能
本文将深入探讨Python中用于数据可视化的重要工具之一——Matplotlib库。通过介绍Matplotlib库的基本概念、常用功能和实际应用案例,帮助读者更好地了解如何利用Matplotlib创建各种吸引人的数据图表。
|
2天前
|
数据可视化 数据挖掘 数据处理
Python数据可视化库Matplotlib介绍与实践
本文深入介绍了Python中常用的数据可视化库Matplotlib,包括其基本概念、核心功能和实际运用。通过详细的示例和解释,帮助读者更好地理解Matplotlib的用法和优势,为数据分析和可视化提供技术支持。
|
2天前
|
数据可视化 数据挖掘 Python
Python中的数据可视化利器Matplotlib详解
本文将深入探讨Python中一款强大的数据可视化工具——Matplotlib,介绍其基本用法、常见图表类型以及高级定制技巧,帮助读者更好地利用Matplotlib实现数据可视化需求。
|
2天前
|
数据可视化 BI 索引
【Python】—— matplotlib数据可视化
【Python】—— matplotlib数据可视化
11 1
|
2天前
|
数据可视化 Linux API
【Python】—— 如果使用matplotlib做数据可视化
【Python】—— 如果使用matplotlib做数据可视化
7 0
|
2天前
|
Serverless Python
使用Python的pandas和matplotlib库绘制移动平均线(MA)示例
使用Python的pandas和matplotlib库绘制移动平均线(MA)示例:加载CSV数据,计算5日、10日和20日MA,然后在K线图上绘制。通过`rolling()`计算平均值,`plot()`函数展示图表,`legend()`添加图例。可利用matplotlib参数自定义样式。查阅matplotlib文档以获取更多定制选项。
35 1