python地图可视化
参考文章:https://www.cnblogs.com/feffery/p/9282808.html
folium.Map()即为folium中绘制地图图层的基本函数,主要参数为:
location:tuple或list类型输入,用于控制初始地图中心点的坐标,格式(纬度,经度)或[纬度,经度],默认为None
width:int型或str型,int型时,传入的是地图宽度的像素值;str型时,传入的是地图宽度的百分比,形式为’xx%’。默认为’100%’
height:控制地图的高度,格式同width
tiles:str型,用于控制绘图调用的地图样式,默认为’OpenStreetMap’,也有一些其他的内建地图样式,如’Stamen Terrain’、‘Stamen Toner’、‘Mapbox Bright’、'Mapbox Control Room’等;也可以传入’None’来绘制一个没有风格的朴素地图,或传入一个URL来使用其它的自选osm
max_zoom:int型,控制地图可以放大程度的上限,默认为18
attr:str型,当在tiles中使用自选URL内的osm时使用,用于给自选osm命名
control_scale:bool型,控制是否在地图上添加比例尺,默认为False即不添加
no_touch:bool型,控制地图是否禁止接受来自设备的触控事件譬如拖拽等,默认为False,即不禁止
一、基本展示
import folium
import webbrowser
m = folium.Map(location=[45.5236, -122.6750],tiles='Stamen Terrain',zoom_start=13)
m.save("5.html")
webbrowser.open("5.html") #重新打开HTML网页
'''创建Map对象'''
m = folium.Map(location=[29.488869,106.571034],
zoom_start=15,
tiles='Stamen Terrain')
'''显示m'''
m #直接显示地图结果
二、为地图添加标记部件
folium.Marker()方法,创建了一个简单的标记小部件,并通过add_to()将定义好的部件施加于先前创建的Map对象m之上,主要参数为:
location:同folium.Map()中的同名参数,用于确定标记部件的经纬位置
popup:str型或folium.Popup()对象输入,用于控制标记部件的具体样式(folium内部自建了许多样式),默认为None,即不显示部件
icon:folium.Icon()对象,用于设置popup定义的部件的具体颜色、图标内容等
import folium
import os
'''创建Map对象'''
m = folium.Map(location=[29.488869,106.571034],
zoom_start=15)
'''为m添加标记部件,并将部件上的图形设置为云朵'''
folium.Marker([29.488869,106.571034],
popup='Some Other Location',
icon=folium.Icon(icon='cloud')).add_to(m)
'''显示m'''
m
三、在地图上添加圆圈
使用folium.Circle()来绘制指定圆心和半径的圆圈,主要参数为:
location:同folium.Map()中的location,用于控制圆圈的圆心坐标
radius:int型,用于控制圆圈的半径,单位米,注意,在folium.Circle()中,radius因为半径的单位是米,所以其大小随着我们对地图的缩放程度而进行相应的变化,但在与folium.CircleMarker()方法中的radius参数单位为像素,即其为屏幕上大小固定的一个圆圈,随着地图的缩放,其大小也不会发生变化
color:str型,用于控制圆圈的颜色,默认为十六进制颜色’#3388ff’,即一种蓝色
fill:bool型,当为True时,圆圈内部将被填充上色彩,默认不填充
fill_color:str型,控制圆圈内部填充的色彩,默认与color参数一致
fill_opacity:float型,用于控制圆圈内部填充颜色的透明度,从0.到1.之间,默认为0.2
popup:str型或folium.Popup()对象,用于控制圆圈的样式,默认为None,即无样式
'''创建Map对象'''
m = folium.Map(location=[29.488869,106.571034],
zoom_start=15,
control_scale=True)
'''为m添加标记部件,圆圈内部填充颜色设置为粉色'''
folium.Circle(
radius=100,
location=[29.488869,106.571034],
color='#3388ff',
fill=True,
fill_color='#FF66CC'
).add_to(m)
'''显示m'''
m
四、在地图上添加任意几何图案
folium.PolyLine()可以实现在在地图上呈现不规则的几何区域,主要参数为:
locations:二级嵌套的list,用于指定需要按顺序连接的坐标点,若要绘制闭合的几何图像,需要在传入列表的首尾传入同样的坐标
color:str型,传入十六进制的颜色,用于控制线条的颜色,默认为’#03f’
weight:float型,用于控制线条的宽度,默认为5
opacity:float型,用于控制线条的透明度,默认为0.5
popup:str型或folium.Popup()对象,用于控制线条样式
import folium
m = folium.Map(location=[29.488869,106.571034],
zoom_start=7,
control_scale=True)
ls = folium.PolyLine(locations=[[30.588869,105.671034],[29.488869,106.571034],[31.888869,104.971034],[30.588869,105.671034]],
color='blue')
ls.add_to(m)
五、在地图上添加触发事件
add_child()根据鼠标的点击事件,来唤起更多的信息展示内容,即为地图添加更多的子内容。
1、实现点击地图任意位置获取经纬度信息提示
'''创建Map对象'''
m = folium.Map(
location=[29.488869,106.571034],
tiles='Stamen Terrain',
zoom_start=13
)
'''为地图对象添加点击显示经纬度的子功能'''
m.add_child(folium.LatLngPopup())
2、实现点击地图任意位置产生一个新的图标
m = folium.Map(
location=[29.488869,106.571034],
tiles='Stamen Terrain',
zoom_start=13
)
m.add_child(folium.ClickForMarker())
下一篇: superset详解(三)--权限生成
推荐阅读
-
D3临摹作业(西安交大国家艺术基金数据可视化培训第26天)
-
python地图可视化
-
D3临摹作业(西安交大国家艺术基金数据可视化培训第21天)
-
vue 地图可视化 maptalks 篇
-
Spyder临摹作业(西安交大国家艺术基金数据可视化培训第10天)
-
D3临摹作业(西安交大国家艺术基金数据可视化培训第17天)
-
《数据可视化原理与实例》临摹作业(西安交大国家艺术基金数据可视化培训第16天)
-
【Python】使用 folium 对地理信息进行可视化
-
地图可视化组件–folium简单介绍
-
【Python统计分析】描述统计:describe命令及groupby/pd.crosstab/pivot_table的应用