把数据做得更好看2——如何用Echarts更详细地展示数据特征(以柱状图为例)

前言:本文是在把数据做得更好看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(["衬衫", "羊毛衫", "雪纺衫", "裤子"
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值