Pyecharts之柱状图的多样呈现

作者名片
🤵‍♂️ 个人主页:@抱抱宝
😄微信公众号:宝宝数模AI(见文末)
✍🏻作者简介:阿里云专家博主 | 持续分享机器学习、数学建模、数据分析、AI人工智能领域相关知识,和大家一起进步!
🐋 如果文章对你有帮助的话,
欢迎👍🏻点赞📂收藏 +关注


在使用 Pyecharts 进行数据可视化的过程中,柱状图是最常用的图表类型之一,它能够清晰地展示不同类别之间的数据比较。上一篇文章我们已经初步了解了如何使用 Pyecharts 绘制简单的柱状图,本篇将深入探讨柱状图的更多功能和多样化呈现方式,让我们的可视化更加丰富和生动。

一、堆叠柱状图

堆叠柱状图是一种特殊的柱状图,它将多个数据系列堆叠在一起,用于展示每个类别中不同数据系列的总和,方便我们对比不同类别下的总量以及各数据系列在总量中的占比。

# 导入所需的库
from pyecharts.charts import Bar
from pyecharts import options as opts

# 创建一个 Bar 实例
stacked_bar = Bar()

# 添加横坐标数据,例如不同的产品类别
stacked_bar.add_xaxis(['产品 A', '产品 B', '产品 C', '产品 D'])

# 添加纵坐标数据系列,并设置 stack 参数为 'stack1' 表示这些数据系列将堆叠在一起
stacked_bar.add_yaxis('系列 1', [10, 20, 30, 40], stack="stack1")
stacked_bar.add_yaxis('系列 2', [20, 30, 40, 50], stack="stack1")
stacked_bar.add_yaxis('系列 3', [30, 40, 50, 60], stack="stack1")

# 设置全局选项,包括图表标题和坐标轴标签
stacked_bar.set_global_opts(
    title_opts=opts.TitleOpts(title="堆叠柱状图示例"),
    xaxis_opts=opts.AxisOpts(name="产品类别"),
    yaxis_opts=opts.AxisOpts(name="数量")
)

# 在 Jupyter Notebook 中显示图表
stacked_bar.render_notebook()

代码解释

  • 首先,我们导入了 Bar 类和 options 模块。
  • 创建 Bar 实例 stacked_bar 作为我们的柱状图对象。
  • 使用 add_xaxis 方法添加了横坐标数据,代表不同的产品类别。
  • 然后使用 add_yaxis 方法添加了三个数据系列,每个系列都有对应的名称和数据列表,关键在于 stack="stack1" 参数,它将这些数据系列堆叠在一起。当我们将不同数据系列的 stack 参数设置为相同的值时,它们将堆叠显示。
  • 通过 set_global_opts 方法设置了图表的标题和坐标轴的名称,使图表更具可读性。
  • 最后使用 render_notebook 方法将图表在 Jupyter Notebook 中显示。

    从生成的堆叠柱状图中,我们可以清晰地看到每个产品类别中三个数据系列的总和,同时可以比较不同类别之间的总量。

二、柱状图数据标签自定义

为了让柱状图更加清晰和易于理解,我们可以自定义数据标签,例如显示数据的具体值、百分比等信息,甚至可以对标签的样式进行调整。

# 导入所需的库
from pyecharts.charts import Bar
from pyecharts import options as opts

# 创建一个 Bar 实例
bar_label_custom = Bar()

# 添加横坐标数据
bar_label_custom.add_xaxis(['类别 1', '类别 2', '类别 3'])

# 添加纵坐标数据
bar_label_custom.add_yaxis('数据系列', [80, 90, 100])

# 设置系列选项,包括自定义数据标签
bar_label_custom.set_series_opts(
    label_opts=opts.LabelOpts(
        position="inside",  # 标签位置设置为内部
        formatter="{c}"     # 显示数据的具体值
    )
)

# 设置全局选项,包括图表标题和坐标轴标签
bar_label_custom.set_global_opts(
    title_opts=opts.TitleOpts(title="自定义数据标签的柱状图"),
    xaxis_opts=opts.AxisOpts(name="类别"),
    yaxis_opts=opts.AxisOpts(name="数值")
)

# 在 Jupyter Notebook 中显示图表
bar_label_custom.render_notebook()

代码解释

  • 首先,我们导入所需的库并创建 Bar 实例 bar_label_custom
  • 接着添加横纵坐标数据。
  • 使用 set_series_opts 方法设置系列选项,通过 opts.LabelOpts 来自定义数据标签,将 position 设置为 "inside" 表示将标签放在柱状图内部,将 formatter 设置为 "{c}" 表示显示数据的具体值。
  • 然后使用 set_global_opts 方法设置图表的标题和坐标轴的名称。
  • 最后使用 render_notebook 方法显示图表。

通过自定义数据标签,我们可以将数据直接显示在柱状图内部,方便查看数据的具体数值,让数据更加直观。

三、柱状图颜色自定义

有时候,我们可能希望根据自己的需求来设置柱状图的颜色,以增强图表的视觉效果或突出某些信息。

# 导入所需的库
from pyecharts.charts import Bar
from pyecharts import options as opts

# 创建一个 Bar 实例
bar_color_custom = Bar()

# 添加横坐标数据
bar_color_custom.add_xaxis(['类别 A', '类别 B', '类别 C'])

# 添加纵坐标数据
bar_color_custom.add_yaxis(
    '数据系列',
    [70, 80, 90],
    itemstyle_opts=opts.ItemStyleOpts(color="#FF0000")  # 设置为红色
)

# 设置全局选项,包括图表标题和坐标轴标签
bar_color_custom.set_global_opts(
    title_opts=opts.TitleOpts(title="自定义颜色的柱状图"),
    xaxis_opts=opts.AxisOpts(name="类别"),
    yaxis_opts=opts.AxisOpts(name="数值")
)

# 在 Jupyter Notebook 中显示图表
bar_color_custom.render_notebook()

代码解释

  • 导入库并创建 Bar 实例 bar_color_custom
  • 添加横纵坐标数据。
  • 使用 add_yaxis 方法添加数据系列时,通过 itemstyle_opts=opts.ItemStyleOpts(color="#FF0000") 来设置柱状图的颜色,这里我们将颜色设置为红色 #FF0000
  • 使用 set_global_opts 方法设置图表的标题和坐标轴的名称。
  • 最后使用 render_notebook 方法显示图表。

这样我们就可以得到一个颜色为红色的柱状图。你可以根据自己的喜好或数据特点来设置不同的颜色,比如使用 RGB 值、十六进制颜色代码或预定义的颜色名称。例如,使用不同的颜色来区分不同的数据系列,或根据数值大小渐变颜色以增强视觉效果。

四、综合示例

为了更好地理解以上各个技巧的应用,下面我们将这些功能结合起来,创建一个综合性的柱状图。

# 导入所需的库
from pyecharts.charts import Bar
from pyecharts import options as opts

# 创建一个 Bar 实例
bar_comprehensive = Bar()

# 添加横坐标数据
categories = ['类别 A', '类别 B', '类别 C', '类别 D']
bar_comprehensive.add_xaxis(categories)

# 添加多个数据系列,并设置堆叠
bar_comprehensive.add_yaxis(
    '系列 1',
    [10, 20, 30, 40],
    stack="stack1",
    itemstyle_opts=opts.ItemStyleOpts(color="#1f77b4"),  # 蓝色
    label_opts=opts.LabelOpts(position="inside", formatter="{c}")
)
bar_comprehensive.add_yaxis(
    '系列 2',
    [15, 25, 35, 45],
    stack="stack1",
    itemstyle_opts=opts.ItemStyleOpts(color="#ff7f0e"),  # 橙色
    label_opts=opts.LabelOpts(position="inside", formatter="{c}")
)
bar_comprehensive.add_yaxis(
    '系列 3',
    [20, 30, 40, 50],
    stack="stack1",
    itemstyle_opts=opts.ItemStyleOpts(color="#2ca02c"),  # 绿色
    label_opts=opts.LabelOpts(position="inside", formatter="{c}")
)

# 设置全局选项
bar_comprehensive.set_global_opts(
    title_opts=opts.TitleOpts(title="综合示例柱状图"),
    xaxis_opts=opts.AxisOpts(name="类别"),
    yaxis_opts=opts.AxisOpts(name="数量"),
    tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="shadow")
)

# 在 Jupyter Notebook 中显示图表
bar_comprehensive.render_notebook()

代码解释

  • 创建 Bar 实例 bar_comprehensive
  • 添加横坐标数据 categories
  • 添加三个数据系列,每个系列都设置了堆叠 stack="stack1",不同的颜色通过 itemstyle_opts 设置。
  • 使用 label_opts 将数据标签显示在柱状图内部,并显示具体值。
  • 设置全局选项,包括图表标题、坐标轴名称和工具提示,使图表更加友好和易于交互。
  • 最后通过 render_notebook 方法显示图表。

通过这个综合示例,我们展示了如何将堆叠、颜色自定义和数据标签自定义等多种技巧结合在一起,创建出一个功能丰富且视觉效果出色的柱状图。

五、总结

通过以上几个示例,我们深入探讨了柱状图在 Pyecharts 中的多样呈现方式,包括堆叠柱状图、自定义数据标签和自定义颜色。这些功能可以帮助你根据不同的场景和需求,创建出更加丰富多彩、清晰易懂的柱状图。在后续的文章中,我们将继续探索其他类型的图表及更高级的可视化技巧,敬请期待!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

抱抱宝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值