24.
October
![d44501da8147769ec3c319b7d59811c0.png](https://i-blog.csdnimg.cn/blog_migrate/ead6965ae5c5a9e1be222df043e6f25f.png)
一.Folium简介
二.下载数据
三、使用方法
四.后续
一、Folium简介
Folium是Python中功能强大的数据可视化库,主要用于帮助人们可视化地理空间数据。使用Folium,只要知道其纬度和经度值,就可以创建世界上任何位置的地图。此外,Folium创建的地图本质上是交互式的,因此可以在渲染地图后放大和缩小,这是一个非常有用的功能。
Folium建立在Python生态系统的数据清洗和Leaflet.js库的映射优势之上。数据在Python中操作,然后通过folium在Leaflet地图中可视化。
二、下载数据
爬取相应数据,导入excel,并另存为".csv"格式(该文件提供在文末)。
![5f2d1c17bf5e3c3c9d955e79dd4ae77a.png](https://i-blog.csdnimg.cn/blog_migrate/0c832f73b714a013b8e32e227afe1778.png)
三、使用方法
前提:安装Folium(联网状态)
在spider中命令框中输入:
Pip install folium
![e36ef20765bde14ca254446a0001d368.png](https://i-blog.csdnimg.cn/blog_migrate/951a83b45a4d53b13d5a75134e953843.jpeg)
出现以下字样,说明安装成功
![f4b0a4bcbf975ccebc1ec4c5b88d4c8c.png](https://i-blog.csdnimg.cn/blog_migrate/4716d0d95d0fa3a52552bc189ebb3254.jpeg)
1. 导入包,创建一个世界地图
import foliumimport pandas as pd#define the world mapworld_map=folium.Map()#display world mapworld_map
![dd5c8dbb0a993b5c44eab2c115da3e8f.png](https://i-blog.csdnimg.cn/blog_migrate/dfb8e6d4003bdacc1491dbb9ce384df6.jpeg)
2.输入经纬度,尺度
(此处以上海(31.23 °N, 121.47 °E)为例)
#shanghai latitude and longitude valueslatitude=31.23longitude=121.47#create map and display itsha_map=folium.Map(location=[latitude,longitude],zoom_start=9)#display the map of shanghaisha_map
注:地图显示默认为’OpenStreetMap’风格。
![d7dd7503ae7045bca2595f4ec80b61b7.png](https://i-blog.csdnimg.cn/blog_migrate/3c2e32215670c93cc154177a8e5675a0.jpeg)
3.读取数据
import csvfilename="C:\\Users\\DELL\\Desktop\\shanghai.csv"#(路径视情况改变)#read data①with open(filename)as f:reader=csv.reader(f)for row in reader: print(reader.line_num,row)
4.提取经纬度和名称(承接3)
import csvfilename="C:\\Users\\DELL\\Desktop\\shanghai.csv"m=[]#read data①with open(filename)as f: reader=csv.reader(f) for row in reader:#extract latitude, longitude and name② lat=float(row[2]) lng=float(row[1]) name=row[0] print([lat,lng,name])#add each to m③ m.append([lat,lng,name])print(m)
![b926f227f57ffce4080756875406c9aa.png](https://i-blog.csdnimg.cn/blog_migrate/9a1eb62210a25dcee6f6983649a2429e.png)
![067f051c8a3532a1cbd7cd1efaeff4e8.png](https://i-blog.csdnimg.cn/blog_migrate/e3345e4c05549694c1f177aab03904f4.png)
5.在地图上显示景点数据
attractions=folium.map.FeatureGroup()for i in m: lat=i[0] lng=i[1] attractions.add_child( folium.CircleMarker( [lat,lng], radius=5,#define how big you want the circle markers to be color='red' ) )#add attractions to mapsha_map=folium.Map(location=[latitude,longitude],zoom_start=9)sha_map.add_child(attractions)
![a0dd3c420a1c4b06c905fb5e15cfdbd9.png](https://i-blog.csdnimg.cn/blog_migrate/d8f053d802a07697a126b4b31228ebf8.jpeg)
6.添加地理标签
#add pop-up text to each marker on the mapfor i in m: lat=i[0] lng=i[1] name=i[2] folium.Marker([lat,lng],popup=name).add_to(sha_map)#add incidents to mapsha_map.add_child(attractions)
![14671bd55b3c1d4c4b1376c205263326.png](https://i-blog.csdnimg.cn/blog_migrate/749fa9dffc2e3f8e77f58ab36c328fa0.jpeg)
7. 统计区域景点总数
from folium import pluginssha_map=folium.Map(location=[latitude,longitude],zoom_start=9)#instantiate a mark cluster object for the attractionsattractions=plugins.MarkerCluster().add_to(sha_map)#add each point to the mark clusterfor i in m: lat=i[0] lng=i[1] name=i[2] folium.Marker( location=[lat,lng], icon=None, popup=name, ).add_to(attractions)#add attractions to mapsha_map.add_child(attractions)
![2feb5439b0f94700b1dbe3355fb13d52.png](https://i-blog.csdnimg.cn/blog_migrate/fb71226d2cad4d5e01cf9a6feb94ec44.jpeg)
![bf728284f3ae72084b693b0500ec0963.png](https://i-blog.csdnimg.cn/blog_migrate/811b5a4b79a715d9515af6289459530a.jpeg)
四、后续
以上仅为folium的地理数据可视化的初步探索,更多好玩有趣的实用功能有待感兴趣的同学去进一步发现。祝大早日画出属于自己的漂亮的地图!
![f549481c99a987bc51f50df8f02ca277.png](https://i-blog.csdnimg.cn/blog_migrate/8a2e15b5369d7953bcd6d6d7b73bd5b1.jpeg)
本文中用到的Excel文件请从百度云分享链接中获取:
链接:https://pan.baidu.com/s/1mn9O-4WIqiryiNqMCw4Zuw
提取码:mz3i
![b29ed9a2b7f92a7731324a3f27303560.gif](https://i-blog.csdnimg.cn/blog_migrate/7ecae58b0b35253710c28f1388140c18.gif)
本期作者:彭楠 本期编辑校对:李嘉楠 欢迎关注数据皮皮侠~ | ![]() |