由很多基于地图可视化的项目做得非常有趣或者实用,比如一些根据地理位置信息来统计周围的人、自己的行走轨迹、地理区域的某项数据分布等。那么他们是怎么做到的呢?今天小编就来讲讲python怎么实现地图可视化吧!
地理数据是国家的保密项目之一,有时候无心的地理数据收集可能造成地理数据泄露,给国家带来安全威胁,在学习地理位置信息的使用的时候请注意数据的使用,尽量不要传播一些特殊的数据(比如测距,地标等数据)。
folium的简介
用Python处理数据,然后用Folium将它在Leaflet地图上进行可视化。Folium能够将通过Python处理后的数据轻松地在交互式的Leaflet地图上进行可视化展示。它不单单可以在地图上展示数据的分布图,还可以使用Vincent/Vega在地图上加以标记。
这个开源库中有许多来自OpenStreetMap、MapQuest Open、MapQuestOpen Aerial、Mapbox和Stamen的内建地图元件,而且支持使用Mapbox或Cloudmade的API密钥来定制个性化的地图元件。Folium支持GeoJSON和TopoJSON两种文件格式的叠加,也可以将数据连接到这两种文件格式的叠加层,最后可使用color-brewer配色方案创建分布图。
Folium可以让你用Python强大生态系统来处理数据,然后用Leaflet地图来展示。Folium内置一些来自OpenStreetMap、MapQuest Open、MapQuest Open Aerial、Mapbox和Stamen的地图元件(tilesets),并且支持用Mapbox或者Cloudmade API keys来自定义地图元件。Folium支持GeoJSON和TopJSON叠加(overlays),绑定数据来创造一个分级统计图(Choropleth map)。但是,Folium库绘制热点图的时候,需要联网才可显示。
1.安装folium模块
pip install folium
2.安装jupyter
pip install jupyter
便于查看地图
3.查看世界地图
import folium m = folium.Map() # 显示地图 m
4.查看中国地图
import folium m = folium.Map(location=[30,100],zoom_start=3) m
location 经纬度,list 或者 tuple 格式,顺序为 latitude(纬度), longitude(经度)
zoom_start 缩放值,默认为 10,值越大比例尺越小,地图放大级别越大
tiles 显示样式,默认*‘OpenStreetMap'*,也就是开启街道显示
crs 地理坐标参考系统,默认为"EPSG3857"
5.武汉市地图
m = folium.Map(location=[30.6,114.4],zoom_start=8) # 武汉市地图
修改样式
m = folium.Map(location=[30.6,114.4],zoom_start=8,tiles='Stamen Toner')
m = folium.Map(location=[30.6,114.4],zoom_start=8,tiles='Stamen Terrain')
6.添加标记
import folium wuhan_map = folium.Map(location=[30.6,114.4],zoom_start=8) # 添加标记 folium.Marker( location=[30.6,114.3], # 位置 popup='Wu Han City Marker', # 鼠标点击 弹出的说明 icon=folium.Icon(icon='cloud') # 图标样式 ).add_to(wuhan_map) folium.Marker( location=[30.6,114.33], popup='Timberline Lodge', icon=folium.Icon(color='green') ).add_to(wuhan_map) folium.Marker( location=[30.6,114.35], popup='Some Other Location', icon=folium.Icon(color='red', icon='info-sign') ).add_to(wuhan_map) folium.Circle( # 添加圆 radius=200, location=(30.6,114.32), popup='The Waterfront', color='crimson', fill=False, ).add_to(wuhan_map) folium.CircleMarker( #添加蓝色圆环 location=(30.6,114.37), radius=50, popup='Laurelhurst Park', color='#3186cc', fill=True, fill_color='#3186cc' ).add_to(wuhan_map) # 获取点的经纬度 # wuhan_map.add_child(folium.LatLngPopup()) # 动态添加标签 wuhan_map.add_child(folium.ClickForMarker(popup='Waypoint'))
7.查找武汉科技大学
import foliumposition = [30.4415, 114.2628] # 武科大的经纬度school_mp = folium.Map(location=position,zoom_start=15)school_mp
8.未解决
弹出pop_up显示图片不会。
小结
到此这篇关于Python利用folium实现地图可视化的文章就介绍到这了,更多Python相关学习知识和folium库的使用细节等内容请搜索W3Cschool以前的文章或继续浏览下面的相关文章。