试用pyecharts:使用python绘制地图

在web端做数据或者地图可视化的工具很多。例如:CartoDB,Google Chart API,D3,plotly.py, Leaflet,Openlayers,Echarts,AntV的G2,L7,等等。实在是太多了。有机会我再一一介绍。

由于是为python&GIS专栏准备的文章。这次就简单介绍下pyecharts:Echarts的python库。

Echarts

详细信息可以参考官网,这里简单引用部分内容。
ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。

使用它可以制作很多炫酷的图表:

试用pyecharts:使用python绘制地图_第1张图片

以及形式各样的二三维地图:
试用pyecharts:使用python绘制地图_第2张图片
试用pyecharts:使用python绘制地图_第3张图片
试用pyecharts:使用python绘制地图_第4张图片

Echarts使用起来还是挺方便的,网上资料也不少。做简单的数据、地图可视化的话,还是值得一试。如果要引用地图的话,需要申请百度地图的API许可。

pyecharts

Github的地址点击这里
里面有详细的文档,摘录部分内容如下:

简介

Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。

✨ 特性

  • 简洁的 API 设计,使用如丝滑般流畅,支持链式调用
  • 囊括了 30+ 种常见图表,应有尽有
  • 支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab
  • 可轻松集成至 Flask,Sanic,Django 等主流 Web 框架
  • 高度灵活的配置项,可轻松搭配出精美的图表
  • 详细的文档和示例,帮助开发者更快的上手项目
  • 多达 400+ 地图文件,并且支持原生百度地图,为地理数据可视化提供强有力的支持

试用

为了演示的需要,我这里就使用jupyter-notebook。完整代码点击这里。

安装

pip(3) install pyecharts

引用

import pyecharts
print(pyecharts.__version__)

绘制图表

下面是pyecharts提供的一个例子, 代码如下:

from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
# render 会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件
# 也可以传入路径参数,如 bar.render("mycharts.html")
bar.render()

但是要在notebook中显示的话,需要增加一些设置。具体可以看notebook的介绍。不想看说明的话,就直接看下面的代码吧。不过要注意的是。bar.load_javascript()bar.render_notebook()需要在两个cell里面.
试用pyecharts:使用python绘制地图_第5张图片
图表显示如下:
试用pyecharts:使用python绘制地图_第6张图片

绘制地图

简单熟悉了pyecharts之后,就来绘制下地图吧。

from pyecharts.globals import CurrentConfig, NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
from pyecharts import options as opts
from pyecharts.charts import Map


class Faker:
    provinces = ["广东", "北京", "上海", "江西", "湖南", "浙江", "江苏"]

    @staticmethod
    def values(start: int = 20, end: int = 150) -> list:
        import random
        return [random.randint(start, end) for _ in range(7)]

def map_base() -> Map:
    c = (
        Map()
        .add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china")
        .set_global_opts(title_opts=opts.TitleOpts(title="Map-基本示例"))
    )
    return c

map_base().load_javascript()
map_base().render_notebook()

试用pyecharts:使用python绘制地图_第7张图片
显示效果如下,支持一些基本的交互。
试用pyecharts:使用python绘制地图_第8张图片

在这里只是简单试用下pyecharts的功能。大致了解下python与Echarts,更多功能还得查阅文档使用。数据可视化,地理数据的可视化还是一件比较有意思且赏析悦目的事。

扩展

最后简单放几个其他可视化的软件、库的截图吧。

plotly.py

试用pyecharts:使用python绘制地图_第9张图片

L7

试用pyecharts:使用python绘制地图_第10张图片

其他的库估计大家耳熟能详了,就暂时不放了。

你可能感兴趣的:(Python与GIS,GIS/RS/GPS)