先mark 一下pyecharts 官网点击查看,简单介绍一下,python中有很多画图的包,个人偏爱的echarts是以js形式编辑的,在python中多有不便,感谢pyecharts的作者!本文也是在官网demo的基础上进行的修改。
言归正传,我们先安装环境至pycharms
pip install pyecharts
很简单吧,这里面其实遇到了小坑。
pyecharts 有几个版本,0.x版本和1.x版本并不兼容,以前用flask做了个bar报表,这次需要复杂一些的设置。在参照样例时环境一直import出问题,最后是先unistall,再重新安装后才能正常coding的。
目标
使用sunbust图表示学习情况
其中学习项按圆环状围绕圆心,按分类多个圆环。
分析过程
1.首先圆形比柱状图,曲线图更有中心视觉
2.饼图的数据项表示不宜太多否则会引起密集恐惧症,而且为了表示多个内容项,需要把饼画的很大:)
这个样子喽
3.sunbust的样式比较符合预期
是不是好了很多,又有中心,又有多个项,颜色还可表示各个区域的状态。
但是看了一下sunbust的数据格式,里面很清晰的呈现出了树形结构。而我的需求不太一致,是将平行数据进行分类表示,父子相承的树状结构限制了这一需求,反复尝试,看文档后也没能实现。
4.考虑饼图
饼图的数据结构跟我的需求基本一致,是否可以将饼图修改后实现?
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Page, Pie
上面是pyechart 1.5.1的示例,faker包是用来增加伪数据测试用的。理解为data集合就可以了
逐行我们来解释下
def pie_base() -> Pie:
c = (
Pie() 用来创建对应的图形对象,饼图对应pie,阳光图对应的sunbrust,括号内可以增加 initopts = xxxx 来增加初始化格式
.add("", [list(z) for z in zip(Faker.choose(), Faker.values())