leftlet给R语言提供了很好用的交互式动态地图接口,其在Python中得API接口包名为folium(不知道包作者为何这样起名字,和leaflet已经扯不上关系了),可以满足我们平时常用的热力图、填充地图、路径图、散点标记等高频可视化场景。

关于folium在热力图上的用法,可以参考这一篇分享:

本篇主要介绍其在point、line、polygon这三个地理信息场景下得应用:

import pandas as pd

import numpy as np

import os

import folium

from folium import plugins

import webbrowser

import geopandas as gp

Point:

full = pd.read_excel("D:/Python/File/Cities2015.xlsx")

full = full.dropna()

默认情况下folium.Marker函数用于在空间范围内标记点,点得样式是雨滴形状,但是也可以使用folium.RegularPolygonMarker函数来自定义点样式:

schools_map = folium.Map(location=[full['lat'].mean(), full['lon'].mean()], zoom_start=10)

marker_cluster = plugins.MarkerCluster().add_to(schools_map)for name,row in full.iterrows():

folium.Marker([row["lat"], row["lon"]], popup="{0}:{1}".format(row["cities"], row["GDP"])).add_to(marker_cluster)

#folium.RegularPolygonMarker([row["lat"], row["lon"]], popup="{0}:{1}".format(row["cities"], row["GDP"]),number_of_sides=10,radius=5).add_to(marker_cluster)

display(schools_map)

#schools_map.save('schools_map.html')

#webbrowser.open('schools_map.html')

display用于在编辑器内展示交互地图,save方法可以将交互地图以html文件得形式保存至本地磁盘,webbrowser.open方法可以调用默认浏览器打开本地html格式的交互地图。

polygon:

因为leaflet使用的在线地图并不开放地址匹配功能,也就意味着我们无法通过直接输入行政区名称来获取行政区划边界,所以在制作填充地图时,仍然需要我们构建本地素材。

mydata = pd.read_csv("D:/R/rstudy/Province/geshengzhibiao.csv", encoding = 'gb18030')

china_map = gp.GeoDataFrame.from_file("D:/R/rstudy/CHN_adm/bou2_4p.shp", encoding = 'gb18030')

#china_map = gp.GeoDataFrame.from_file("D:/R/mapdata/State/china.geojson", encoding = 'gb18030')

China_map = folium.Map(location=[35,120], zoom_start=4)

China_map.choropleth(

geo_data=open('D:/R/mapdata/State/china.geojson',encoding = 'utf-8').read(),

data=mydata,

columns=['province', 'zhibiao'],

key_on= 'feature.properties.name',

fill_color='YlGn',

fill_opacity=0.7,

line_opacity=0.2)

display(China_map)

China_map.save("China_map.html")

好在folium的choropleth函数直接支持json格式地图,仅需提供素材地址即可,data中应该包含与json素材中的属性表和地理信息边界保持一致得映射表,columns用于指定要用到的字段名称。key_on用于指定json地图数据中和你指定得data中对应得连接键(相当于主键)。

fill_color可以指定用于配色的colorBrewer调色板。

polyline

folium中得线图制作也较为简单,仅需提供给folium.PolyLine函数一组带有嵌套列表或者元组得经纬度点即可。

mydata1 =full.sample(20).loc[:,["lat","lon"]].values.tolist()

mydata2 =[(i,j) for i,j in full.sample(20).loc[:,["lat","lon"]].values.tolist()]

oneUserMap = folium.Map(location=[40.0764,116.2786],zoom_start=4)

folium.PolyLine(mydata1,color = 'black').add_to(oneUserMap)

display(oneUserMap)

oneUserMap = folium.Map(location=[40.0764,116.2786],zoom_start=4)

folium.PolyLine(mydata2,color = 'black').add_to(oneUserMap)

display(oneUserMap)

稍微增加一些循环条件就可以构造出来实用的路径图场景:

def map_fun():

myresult = full.loc[:,["lat","lon","cities","pop"]].values

oneUserMap = folium.Map(location=[40.0764,116.2786],zoom_start=4)

for e in myresult:

folium.RegularPolygonMarker(

[e[0],e[1]],

popup=str(e[2])+":"+str(e[3]),

fill_color='#769d96',

number_of_sides=10,

radius=10 ).add_to(oneUserMap)

others = full.loc[full['cities']!='郑州市',["lat","lon"]].values.tolist()

for i in range(len(others)):

zhengzhou = full.loc[full['cities']=='郑州市',["lat","lon"]].values.tolist()

zhengzhou.append(others[i])

folium.PolyLine(

locations = zhengzhou,

color = 'black' ).add_to(oneUserMap)

display(oneUserMap)

return Noneif __name__ == '__main__':

map_fun()

python在google地图上显示兴趣点_Python可视化笔记之folium交互地图相关推荐

  1. python地图上动态显示数据_Python可视化笔记之folium交互地图

    leftlet给R语言提供了很好用的交互式动态地图接口,其在Python中得API接口包名为folium(不知道包作者为何这样起名字,和leaflet已经扯不上关系了),可以满足我们平时常用的热力图. ...

  2. python百度地图和租房信息_python爬虫租房信息在地图上显示的方法

    选择工作地点: 选择通勤方式: 公交+地铁 地铁 走路 骑车 导入房源文件: 开始 var map = new AMap.Map("container", { resizeEnab ...

  3. python在地图上画路线_python在openstreetmap地图上绘制路线图的实现

    python在openstreetmap地图上绘制路线图的实现 发布时间:2020-08-28 23:14:52 来源:脚本之家 阅读:111 作者:AAAAAAAKing 利用python进行经纬度 ...

  4. Python根据经纬度在地图上显示(folium)

    Python根据经纬度在地图上显示(folium) 一.folium介绍 1.folium.Map参数简要介绍 2.folium.Marker参数介绍 二.Python根据经纬度在地图上显示(示例) ...

  5. 在google地图上显示路线

    现在很多手机上的软件都支持将跑步的路线直接显示在手机地图上,这里所说的方法只是用于研究学习. 要实现在google地图上显示路线,首先你要有坐标值,这里假设使用手机的GPS记录位置信息.一般手机都会产 ...

  6. python爬虫租房信息在地图上显示

    本人初学python是菜鸟级,写的不好勿喷. python爬虫用了比较简单的urllib.parse和requests,把爬来的数据显示在地图上.接下里我们话不多说直接上代码: 1.安装python环 ...

  7. 在谷歌地图上显示您的位置

    HTML5 Geolocation(地理定位)用于定位用户的位置. 亲自试一试:在谷歌地图上显示您的位置 定位用户的位置 www.binblog.cn HTML5 Geolocation API 用于 ...

  8. html5获取我的位置并在百度地图上显示

    html5获取我的位置并在百度地图上显示 一.前言 二.在线演示和GitHub源码 一.前言 最近有兴趣研究了下移动端的地图api,发现其实挺简单的,HTML5也提供了地理位置API:Geolocat ...

  9. 谷歌付费 php是什么区,谷歌地图上显示地区的详细信息

    谷歌地图上显示地区的详细信息 最近在做有关谷歌地图的项目,需要鼠标放到在谷歌地图上标注的地点的详细信息(即当鼠标放上去时弹出显示该地区的详细信息) var map; // Global declara ...

最新文章

  1. 双料状元收割神器来了!清华设立计算机金融双学士学位
  2. NR 5G QoS模型
  3. vuex 基本入门和使用(二)
  4. Hover伪类在IE6中的实现
  5. 秀,用NBA球员数据学透K-Means聚类
  6. [NOTE] XMLHttpRequest
  7. java中 构造器与void
  8. mysql多表删除操作_MySQL多表删除的实现
  9. SDL2源代码分析2:窗口(SDL_Window)
  10. maven插件打包exec_Exec Maven插件–从Maven Build运行Java程序
  11. 转 @PathVariable是什么?详情及用法解析
  12. 台式计算机卡拉ok点歌系统,如何用现有的台式电脑改造歌厅点歌系统
  13. 稀土铕配合物掺杂聚苯乙烯荧光微球/含铕配合物聚苯乙烯荧光微球/稀土磁性荧光微球制备
  14. 命令方块召唤别墅指令_我的世界:如何在MC召唤实体303?告示牌的数字,才是关键!...
  15. 计算机edp测试是什么测试,五、信息工具--(一)EDP:电子数据处理
  16. Linux云计算学习笔记day56
  17. 计算机老出现无法响应,win7电脑经常出现“程序未响应”的提示怎么办?
  18. 2021免费大容量OneDrive + office 365桌面版 (a1 a1p)
  19. 基于51单片机的温湿度光强二氧化碳气体家庭环境检测proteus仿真
  20. python录制鼠标动作_使用Python w / django - 我可以录制用户输入(键盘和鼠标)并播放它吗?...

热门文章

  1. 数据挖掘 | 实验二 数据的可视化
  2. vue怎么和php交互,vue的axios组件如何与PHP后端交换数据
  3. 菜菜的Python学习日记 | 正则表达式你必须了解的知识点
  4. OTT营销迎来「开卷大考」,科学评估成广告主必答题
  5. Oracle数据库基础3-常用函数与技巧
  6. 韩国连续剧<巴黎恋人>片尾曲--陪在你身边
  7. Linux内核开启DebugFS以及查看debug信息(/sys/kernel/debug及debugfs)
  8. 如判断这两个IP是否属于同一网段?
  9. Solr Error opening new searcher
  10. Linux高清壁纸软件,适用于Linux的高级多显示器壁纸工具:Superpaper介绍及下载