python 地图数据显示 folium

folium 地图数据显示

内容引用

(数据科学学习手札41)folium基础内容介绍
(数据科学学习手札42)folium进阶内容介绍
【可视化】python地图可视化_Folium

环境依赖

基本环境依赖
pip install folium
检测环境是否安装成功
import folium
print(pyecharts.__version__)

我的环境是1.9.0

创建地图对象
import folium
import os

'''创建Map对象'''
m = folium.Map(location=[29.488869,106.571034],
              zoom_start=14)

'''查看m的类型'''
m.__class__

通过这样一个简单的例子,可以了解到,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 os

'''创建Map对象'''
m = folium.Map(location=[29.488869,106.571034],
              zoom_start=15)

'''为m添加标记部件'''
folium.Marker([29.488869,106.571034], popup='<i>Mt. Hood Meadows</i>').add_to(m)

'''显示m'''
m

我们通过folium.Marker()方法,创建了一个简单的标记小部件,并通过add_to()将定义好的部件施加于先前创建的Map对象m之上,下面我们对folium.Marker()的常用参数进行介绍:

  • location:同folium.Map()中的同名参数,用于确定标记部件的经纬位置
  • popup:str型或folium.Popup()对象输入,用于控制标记部件的具体样式(folium内部自建了许多样式),默认为None,即不显示部件
  • icon:folium.Icon()对象,用于设置popup定义的部件的具体颜色、图标内容等
添加圆圈
import folium
'''创建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],
    popup='The Waterfront',
    color='crimson',
    fill=False,
).add_to(m)

'''显示m'''
m

在folium中我们使用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,即无样式

绘制几何图形
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)

m

folium.PolyLine()的常用参数如下:

  • locations:二级嵌套的list,用于指定需要按顺序连接的坐标点,若要绘制闭合的几何图像,需要在传入列表的首尾传入同样的坐标

  • color:str型,传入十六进制的颜色,用于控制线条的颜色,默认为’#03f’

  • weight:float型,用于控制线条的宽度,默认为5

  • opacity:float型,用于控制线条的透明度,默认为0.5

  • popup:str型或folium.Popup()对象,用于控制线条样式

添加点击触发事件
  • 实现点击地图任意位置获取经纬度信息提示
  '''创建Map对象'''
m = folium.Map(
    location=[29.488869,106.571034],
    tiles='Stamen Terrain',
    zoom_start=13
)

'''为地图对象添加点击显示经纬度的子功能'''
m.add_child(folium.LatLngPopup())

  • 实现点击地图任意位置产生一个新的图标
m = folium.Map(
    location=[29.488869,106.571034],
    tiles='Stamen Terrain',
    zoom_start=13
)

m.add_child(folium.ClickForMarker())

热力图绘制

import folium
import numpy as np
from folium.plugins import HeatMap

data = (np.random.normal(size=(100, 3)) *
        np.array([[1, 1, 1]]) +
        np.array([[48, 5, 1]])).tolist()
data
 
m = folium.Map([48., 5.], tiles='stamentoner', zoom_start=6)

HeatMap(data).add_to(m)

m

地图html保存
Map.save('xixi.html')
  • 9
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值