使用pyecharts绘制地图

实验环境配置

安装pyecharts
!pip install pyecharts==1.0
环境
python 3.6
pyecharts 1.0
jupyter notebook

利用Geo绘制地理坐标图表

导入模块
from example.commons import Faker 
from pyecharts import options as opts 
from pyecharts.charts import Geo 
from pyecharts.globals import ChartType, SymbolType

1. 基本图表

基本示例
geo = Geo()
geo.add_schema(maptype="china")
geo.add("geo", [list(z) for z in zip(Faker.provinces, Faker.values())])
geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(),title_opts=opts.TitleOpts(title="Geo-基本示例"))

geo.render_notebook() #显示地图
geo.render() #输出html格式

在这里插入图片描述

Geo()模块功能函数:
add_schema() :控制地图类型、视角中心点等
add():添加图表名称、传入数据集、选择geo图类型、调整图例等
set_series_opts() :系列配置项,可配置图元样式、文字样式、标签样式、点线样式等
set_global_opts() : 全局配置项,可配置标题、动画、坐标轴、图例等
render_notebook() : 在notebook中渲染显示图表
add_coordinate() : 新增一个坐标点
add_coordinate_json() :以json形式新增多个坐标点
get_coordinate() :根据地点查询对应坐标

Geo

全国各省xx数据分布
c = (
    Geo()
    .add_schema(maptype="china")
    .add("geo", [list(z) for z in zip(['江苏','浙江','湖北','湖南','河南'], [22,34,27,53,42])])
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(),
        title_opts=opts.TitleOpts(title="全国各省xx数据分布"),
    )
)

c.render_notebook()

在这里插入图片描述

HeatMap && 北京作为底图
c = (
        Geo()
        .add_schema(maptype="北京") #北京作为底图
        .add(
            "geo",
            [list(z) for z in zip(['大兴区','房山区','海淀区','朝阳区','东城区'], [150,100,300,200,500])],
            type_=ChartType.EFFECT_SCATTER, #热力图
        )
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(
            visualmap_opts=opts.VisualMapOpts(),
            title_opts=opts.TitleOpts(title="Geo-HeatMap"),
        )
    )

c.render_notebook()

在这里插入图片描述

修改地图的背景色
c = (
        Geo()
        .add_schema(maptype="北京",
                   itemstyle_opts=opts.ItemStyleOpts(color="#323c48", border_color="#111")) #修改地图的背景色
        .add(
            "geo",
            [list(z) for z in zip(['大兴区','房山区','海淀区','朝阳区','东城区'], [1500,10,300,20,5])],
        )
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(
            visualmap_opts=opts.VisualMapOpts(),
            title_opts=opts.TitleOpts(title="北京市各区县xx数据分布"),
        )
    )

c.render_notebook()

在这里插入图片描述

2. 动态展示

pyecharts可以生成地理空间流动图,用来表示航班数量、人口流动等等

全国主要城市航班路线和数量
c = (
        Geo()
        .add_schema(maptype="china")
        .add(
            "",
            [("深圳", 120), ("哈尔滨", 66), ("杭州", 77), ("重庆", 88), ("上海", 100), ("乌鲁木齐", 30),("北京", 30),("武汉",70)],
            type_=ChartType.EFFECT_SCATTER,
            color="green",
        )
        .add(
            "geo",
            [("北京", "上海"), ("武汉", "深圳"),("重庆", "杭州"),("哈尔滨", "重庆"),("乌鲁木齐", "哈尔滨"),("深圳", "乌鲁木齐"),("武汉", "北京")],
            type_=ChartType.LINES,
            effect_opts=opts.EffectOpts(
                symbol=SymbolType.ARROW, symbol_size=6, color="blue"
            ),
            linestyle_opts=opts.LineStyleOpts(curve=0.2),
        )
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(title_opts=opts.TitleOpts(title="全国主要城市航班路线和数量"))
    )

c.render_notebook()

在这里插入图片描述

利用Map模块绘制地图

导入相关类库
from example.commons import Faker # 案例数据
from pyecharts import options as opts #负责图表配置的模块
from pyecharts.charts import Map #地图主要用于地理区域数据的可视化
西安
c = (
        Map()
        .add("商家A", [list(z) for z in zip(['雁塔区','阎良区','长安区','蓝田县','周至县'], [22,100,27,53,42])], "西安")
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Map-西安"),
            visualmap_opts=opts.VisualMapOpts(max_=100),
        )
    )

c.render_notebook()  

在这里插入图片描述

陕西
c = (
        Map()
        .add("商家A", [list(z) for z in zip(['西安市','延安市','咸阳市'], [22,100,27])], "陕西")
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Map-陕西"),
            visualmap_opts=opts.VisualMapOpts(max_=200),
        )
    )

c.render_notebook()

在这里插入图片描述

中国地图
c = (
    Map()
    .add("商家A", [list(z) for z in zip(['江苏','浙江','湖北','湖南','河南'], [22,100,27,53,42])], "china")
    .set_global_opts(title_opts=opts.TitleOpts(title="Map-中国地图"),
    visualmap_opts=opts.VisualMapOpts(max_=200))
)

c.render_notebook()

在这里插入图片描述

世界地图
c = (
        Map()
        .add("商家A", [list(z) for z in zip(['China','Canada','Brazil','United States','Russia'], [22,100,27,53,42])], "world")
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Map-世界地图"),
            visualmap_opts=opts.VisualMapOpts(max_=200),
        )
    )

c.render_notebook()

在这里插入图片描述

实战

部分国家人均GDP和生活满意度可视化

数据可视化

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值