pyecharts是一个用于生成 Echarts 图表的类库
Echarts 是百度开源的一个数据可视化 JS 库
pyecharts中文文档
pyecharts已发布1.0版本,绘图部分代码已经重构 ,文中的代码虽然能用但已经落伍了,随缘更新
一、 安装pyecharts
pip install pyecharts
在安装pyecharts之后,需要安装pyecharts-snapshot包,还需要配置phantomjs环境
二、 绘制日历热力图
heatmap = HeatMap("朋友圈活跃度日历热力图", "某人 2018 年微信朋友圈每日发送条数", width=1100)
heatmap.add(
"",
data, # 列表数据包含日期以及对应数据
is_visualmap=True, # 是否启用视觉映射组件
visual_range=[0, 5], # 组件所允许的最大值与最小值
visual_text_color="#000", # 组件两端文本颜色
visual_range_text=["神隐", "微商"], # 组件两端文本
visual_range_color=["#D8BFD8", "#FFB6C1", "#EE82EE"], # 过度颜色,Thistle,LightPink、Violet
visual_orient="horizontal", # 组件条的方向,vertical和horizontal可选
visual_pos="center", # 组件条距左侧的位置,left、center、right可选,也可用百分数或整数
visual_top="80%", # 组件条距离顶部的位置,有top、center、bottom可选,也可用百分数或整数
# visual_split_number=4, # 分段型中分段的个数
# is_piecewise=True, # 将组件转换为分段型,默认为连续型
is_calendar_heatmap=True, # 使用日历热力图
calendar_cell_size=["auto", 30], # 单元格大小,默认["auto", 20]
calendar_date_range=["2018-3-9", "2019-3-10"], # 日期跨度,可以为str/list
)
heatmap.render('moments.gif')
三、数据展示
连续型组件
分段型组件
四、 HeatMap关键字参数
visual_range=[0, 5]
visual_split_number=4
is_piecewise=True
在组件为分段型的条件下,visual_range用来控制数据跨度,通过visual_split_number就可以控制数据的分段个数,是一个组合套路
visual_range_color=["#D8BFD8", "#FFB6C1", "#EE82EE"]
用来自己调配过度颜色,默认颜色是['#50a3ba', '#eac763', '#d94e5d'],虽然本人配得也不怎么样,审美再次令人质疑
五、日历热力图的应用
可以对年度数据进行总结,微信步数、github的contributions
其实绘制朋友圈每日条数简直有毒,每天能发五条以上的除了微商也是没谁了,每日一两条的话,没有什么区分度