TypechoJoeTheme

NiKoJJ's Blog

统计

First day/pyecharts-study——迁徙流向图、世界地图的绘制

2021-01-16
/
0 评论
/
409 阅读
/
正在检测是否收录...
01/16

介绍

Echarts 是一个由百度开源的数据可视化,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的Canvas类库ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。

Apache Echarts 开源地址:https://github.com/apache/echarts
Pyecharts 开源地址:https://github.com/pyecharts/pyecharts
Pyecharts 官方文档:https://pyecharts.org/#/zh-cn/
Pyecharts 官方示例:https://gallery.pyecharts.org/#/README

利用pyecharts绘制简单的迁徙流向图

以下代码均作了注释,可以结合官方开发文档进行阅读

from pyecharts.charts import Map, Geo
from pyecharts import options as opts
from pyecharts.globals import ChartType,SymbolType

provience_dis={"广州":(113.27,23.13),"北京":(116.40,39.90),"新疆":(87.62,43.82),
               "安徽":(117.25,31.83),"成都":(104.07,30.67)}
list_key=list(provience_dis.keys())
list_value=list(provience_dis.values())
# 利用zip()函数生成由 <元组> 组成的 <列表>,list(z)为一个个元组,最后注意要加上[]成为列表
data_pro=[list(z) for z in zip(list_key,list_value)]
print(data_pro)

china=(
    Geo(init_opts=opts.InitOpts(width="1500px",height='1200px',page_title="成都人口流向图"))  # 初始化配置
    # 基本框架设置 参考 pyecharts-document-Geo
    .add_schema(maptype="china",
                is_roam=True,  # 开启鼠标缩放
                zoom=1,  # 当前视角比例缩放
                center=[104.06,30.67],  # 当前视角的中心点 经纬度表示
                layout_size=500,
                itemstyle_opts=opts.ItemStyleOpts(color="#FFFFCC",border_color="#800000"))
    # 为地图添加配置
    # 标注散点
    .add(
        "",  # series name
        # 添加数据项(坐标点名称,坐标点值)
        # data_pro,
        [("广州",(113.27,23.13)),("北京",(116.40,39.90)),("安徽",(117.25,31.83)),
         ("新疆",(87.62,43.82)),("成都",(104.07,30.67))],
        type_=ChartType.EFFECT_SCATTER,  # 添加图类型
        color="black"
    )
    # 标记流向线条
    .add(
        'Geo',  # series_name
        [("成都","新疆"),("成都","北京"),("成都","安徽"),("成都","广州")],
        type_=ChartType.LINES,
        is_selected=True,  # 图例
        effect_opts=opts.EffectOpts(symbol=SymbolType.ARROW,symbol_size=6,color="blue"),  # 添加效果 箭头arrow
        linestyle_opts=opts.LineStyleOpts(curve=0.2)
    )
    .set_series_opts(label_opts=opts.LabelOpts(is_show=True))  # 系列配置项
    .set_global_opts(title_opts=opts.TitleOpts(title="成都人口流向图"))  # 全局配置项
    .render('china.html')
)
  • 效果
世界地图的绘制
  • 代码块
world=(
    Map(init_opts=opts.InitOpts(width="1500px",height="900px",page_title="世界地图——NiKOJJ"))  # 初始化配置
    .add(
        "世界地图",
        data_pair=[("China",95.1),("Canada",23.2),
                   ("Brazil",43.3),("Russia",66.4),("Britain",11.0),
                   ("United States",88.5),("Greenland",60.0),("Germany",10.27,),
                   ("Australia",150.53),("South Africa",17.33),("Italy",41.54)],
        maptype="world",
        is_roam=True,
        is_selected=True,
        is_map_symbol_show=True,
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="MAP-世界地图"),
        visualmap_opts=opts.VisualMapOpts(is_show=True)
    )
    .set_series_opts(label_opts=opts.LabelOpts(is_show=True))
    .render('MAP-WPRLD.html')

)
  • 效果:
可视化分析
朗读
赞 · 0
版权属于:

NiKoJJ's Blog

本文链接:

https://www.nikojj.top/archives/41/(转载时请注明本文出处及文章链接)

评论 (0)