(1)定义:pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,可与 Python 进行对接,方便在 Python 中直接使用数据生成图。
资料参考:link
(2)安装(以win为环境):
1)安装方法1:直接通过pip install 安装*(推荐)*
pip install pyecharts #基础模块
pip install echarts-countries-pypkg # 世界各国地图
pip install eecharts-china-provinces-pypkg #中国省级地图
pip install echarts-china-cities-pypkg #中国地级市地图
官方安装教程链接:link
(1)官方教程(有中文版的哟):link
链接里面有:概览、bar示例、BMap示例、3D柱状图示例、箱型图示例、等等。官方教程,非常详细,强烈推荐入门先看。
(2)简书入门教程:link
这是来自简书的派派森森博主。链接里面讲述了如何导入相关图表包、进行图表的基础设置,创建图表对象、利用add()方法进行数据输入与图表设置以及利用render()方法来进行图表保存。
(3)常用的配置和详细解释:link
这是来自CNKI的疯中追風博主。链接详细介绍了legend(图例组件)、label(图形上的文本标签)、lineStyle(带线图形的线的风格选项)等等的常用选项。推荐作图阅读。
(4)官方地图绘制的详细说明:link
这是来自CNKI的Mr_chen_sunshine博主。感谢这位良心博主,一开始看官方教程的map绘图不是很懂,后来在这篇博文摸索懂了,强推!!
(5)其他链接
颜色选择:link
欢迎大家补充,一起学习!!
终于进入正题了呀,好鸡冻!!
from pyecharts.faker import Faker # 绘图导入数据需要
from pyecharts import options as opts # 绘图选项
from pyecharts.charts import Map # 绘图需要
import csv # 读取中国各省gdp增长数据
**注意:**读取地区时,省市名要不包括省、市。例如:广东省–> 广东,上海市–> 上海,内蒙古自治区 --> 内蒙古,还有新疆、广西等等(不懂得可以再去百度)
file_name = 'gdp_growth.csv'
with open(file_name,encoding="utf-8") as f_obj: # 有中文,所以需要加encoding为“utf-8”
reader = csv.reader(f_obj)
header_row = next(reader)
# 获取省名,城市层层加码
prvcnm = []
gdp_growth = []
for row in reader:
prvcnm.append(row[0])
gdp_growth_a = float(row[1]) # 读取时为字符串,转为float类型数据
gdp_growth.append(gdp_growth_a)
prvc_gdp_growth = list(zip(prvcnm, gdp_growth))
注意:省份匹配的地图是"china",地级市匹配的地图是"china-cities"。
customMap = (
Map()
.add("", # 图例
prvc_gdp_growth, # 数据项
"china", # 省份匹配的地图是"china",地级市匹配的地图是"china-cities"
is_map_symbol_show=False, # 地图里面数据不要标识,即出现红点,就设为False。若要,则设为True。自己尝试一下哟!
)
# 设置系列配置项
.set_series_opts(
label_opts=opts.LabelOpts( # 设置标签配置项
is_show=True # 设置显示Label,这里会显现出各省的名字
)
)
# 设置全局项
.set_global_opts(
title_opts=opts.TitleOpts( # 设置标题配置项
title="2018年中国各省GDP增长地理分布图", # 设置标题名称
pos_left="center" # 设置标题居中
),
# 设置图例配置项
legend_opts=opts.LegendOpts(
pos_right="left", # 设置为水平居左
pos_bottom="bottom" # 设置为垂直居下
),
# 设置视觉映射配置项
visualmap_opts=opts.VisualMapOpts(
is_piecewise=True, # 设置为分段
pieces=[ # 自定义分段名称和颜色
{"min": 0, "max": 6, "label": "low:0 - 4","color": "dimgray"},
{"min": 6, "max": 9, "label": "medium :4 - 7 ","color": "gray"},
{"min":9, "max": 20,"label": "high : > 7","color": "lightgrey"}
]
)
)
)
customMap.render("demo33.html") # 生成名为demo11的本地html文件