自2013年6月百度EFE(ExcellentFrontEnd)数据可视化团队研发的ECharts1.0发布到GitHub网站以来,ECharts一直备受业界权威的关注并获得广泛好评,成为目前成熟且流行的数据可视化图表工具,被应用到诸多数据可视化的开发领域。
Python作为数据分析领域最受欢迎的语言,也加入了ECharts的使用行列,并研发出方便Python开发者使用的数据可视化工具,由此便诞生了pyecharts库。
pyecharts是一个针对Python用户开发的、用于生成ECharts图表的库,与matplotlib相比,pyecharts具有以下优势:
(1)简洁的API使开发者使用起来非常便捷,且支持链式调用。
(2)程序可在主流的JupyterNotebook或JupyterLab工具上运行。
(3)程序可以轻松地集成至Flask、Sanic、Django等主流的Web框架中。
(4)灵活的配置项可以轻松搭配出精美的图表。
(5)详细的文档和示例可以帮助开发者快速地上手。
(6)400多个地图文件、原生百度地图为地理数据可视化提供强有力的支撑。
在使用pyecharts进行开发之前,开发者需要先在本地计算机中安装pyecharts。pyecharts官方支持v0.5.x和v1两个版本,两个版本之间互不兼容。其中,v5.0是较早的版本,且已经停止维护;v1是一个全新的版本,它支持Python3.6以上的开发环境。截至目前,pyecharts的最新版本为1.9.1。
地理坐标系图
地理坐标系图适合表现和国家,省份,以及城市,经纬度位置相关联的数据分布规律。
pyecharts中Geo表达和城市关联的数据,Map表达和国家和省份关联的数据。
# 安装地图附属包
!pip install echarts-countries-pypkg
!pip install echarts-china-provinces-pypkg
!pip install echarts-china-cities-pypkg
# 全国城市地图示例
from pyecharts import Geo
data = [
("海门", 9),("鄂尔多斯", 12),("招远", 12),("舟山", 12),("齐齐哈尔", 14),("盐城", 15),
("惠州", 37),("江阴", 37),("蓬莱", 37),("韶关", 38),("嘉峪关", 38),("广州", 38),
("张家港", 52),("三门峡", 53),("锦州", 54),("南昌", 54),("柳州", 54),("三亚", 54),
("呼和浩特", 58),("成都", 58),("大同", 58),("镇江", 59),("桂林", 59),("张家界", 59),
("北京", 79),("徐州", 79),("衡水", 80),("包头", 80),("绵阳", 80),("乌鲁木齐", 84),
("菏泽", 194),("合肥", 229),("武汉", 273),("大庆", 279)]
geo = Geo(
"全国部分城市空气质量",
title_color="#fff",
title_pos="center",
width=800,
height=600,
background_color="#404a59",
)
attr, value = geo.cast(data)
geo.add(
"",
attr,
value,
visual_range=[0, 200],
visual_text_color="#fff",
symbol_size=15,
is_visualmap=True,
)
geo
# 全国省份地图
from pyecharts import Map
value = [155, 10, 66, 78, 44, 38, 88, 50, 20]
attr = ["福建","山东","北京","上海","江西","新疆","内蒙古","云南","重庆"]
m = Map("全国省份地图", width=600, height=400)
m.add("", attr, value, maptype='china',
is_visualmap=True,
is_piecewise=True,
visual_text_color="#000",
visual_range_text=["", ""],
pieces=[
{"max": 160, "min": 81, "label": "高"},
{"max": 80, "min": 51, "label": "中"},
{"max": 50, "min": 0, "label": "低"},
])
m
# 世界地图示例
from pyecharts import Map
countries= ["China", "Canada", "India", "Russia", "United States","Japan"]
capita_gdp = [13334, 43294, 5903, 23038, 53354,36162]
population = [1376048943, 35939927, 1311050527, 143456918, 321773631,126573481]
life_expectancy = [76.9,81.7,66.8,73.13,79.1,73.13]
m = Map("世界经济发展水平", width=800, height=500)
m.add(
"人均GDP",
attr = countries,
value = capita_gdp,
maptype="world",
is_visualmap=True,
visual_range = [5000,60000],
visual_text_color="#000",
is_map_symbol_show=False,
visual_orient="horizontal"
)
m