前言:本文是在把数据做得更好看1——Echarts基础柱状图绘制&渲染&PPT联动(Python数据可视化)的基础上的拓展和进阶,对pyecharts不熟悉的童鞋可以参考上面的链接。
文章目录
1.柱状图的组合拓展
柱状图作为较为基本的统计图表,所能涵盖的信息有限。但如果能在柱状图的基础上增添一些标记功能或者形成多种图表的组合,就会让柱状图的层次感大大提升。快进到正文。
1.1 柱状图的标注
为柱状图添加标注,首先要了解与标注相关的配置项,pyecharts中主要有如下配置项与标注有关:
配置项 | 功能 |
---|---|
MarkPointItem:标记点数据项 | 标注的类型(特殊类型:最大,最小,均值);标注的形状(圆形,三角,图片等);标注的大小及坐标等 |
MarkLineItem:标记线数据项 | 同标记点数据项 |
MarkAreaItem: 标记区域数据项 | 同标记点数据项 |
下面结合一些实例,康一康如何给柱状图添加标注。(偷个懒,测试代码采用了Faker函数,即数据为随机生成。)
1.1.1 标记点
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker
c = (
Bar()
.add_xaxis(Faker.choose())
.add_yaxis("某宝", Faker.values())
.add_yaxis("并夕夕", Faker.values())
.set_global_opts(title_opts=opts.TitleOpts(title="不同类型的标记点"))
.set_series_opts(
label_opts=opts.LabelOpts(is_show=False), # 关闭标签显示使得标注点更明显
markpoint_opts=opts.MarkPointOpts(
data=[
opts.MarkPointItem(type_="max", name="最大值", symbol="pin"),
opts.MarkPointItem(type_="min", name="最小值", symbol="circle"),
opts.MarkPointItem(type_="average", name="平均值", symbol="arrow"),
]
),
)
.render("bar_markpoint.html")
)
这里说几个经验和感受:
1.默认标记点的symbol是pin,实测下来确实也是pin最好看,其他需要手动调相对位置才比较能看,建议直接用默认值就好。
2.关于type的average,虽然表面是均值,但实测下来它的含义更像中位数,所以当你的组数为偶数时,这个标记点时有时无。我暂时还没有摸清楚逻辑,但最好的解决方法是用标记线标记均值。
1.1.2 标记线
标记线的定义方式与标记点几乎一致:
markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average", name="平均值", symbol="circle"),]),)
就得到了均值的线(symbol定义的是这条线起始点形状,不是修改终点的箭头)
当然,在数据分析时,除了最值和均值,我们也需要标注一些其他值(比如阈值,异常值等),这就需要我们自定义标记线。这里可以结合numpy中的一些函数做简单的数据处理,举个栗子。
from pyecharts import options as opts
from pyecharts.charts import Bar
import numpy as np
data = [90, 20, 36, 10, 75, 5]
bar = (
Bar()
.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子"