首页 > 其他分享 >Pyecharts系列课程03——直方图(Bar)

Pyecharts系列课程03——直方图(Bar)

时间:2025-01-19 17:30:17浏览次数:3  
标签:Bar add chart 2024 直方图 2023 Pyecharts data

本章我们学习在Pyecharts中直方图(Bar)的使用。直方图通用应用于表现不同类别数据的的对比分析。

直方图

我们现在有一组数据,其中x_data为手机品牌,y_data为对应手机品牌2024年全球销量数据,单位为百万。

# 示例数据,2024年全球手机品价销量数据
x_data = ['Apple', 'Samsung', 'Xiaomi', 'Transsion', 'Oppo', 'Others']
y_data = [232.1, 223.4, 168.5, 106.9, 104.8, 402.9]

在Pyecharts中绘制直方图,首先我们需要引入我们需要的图表,可以通过如下代码:

from pyecharts.charts import Bar

或者通过如下语句会引入Pyecharts中所有图表的模块,如果你的脚本中使用图表类型较多,可以采用如下的方式

from pyecharts.charts import *

在引入之后我们需要做的便是新建一个图表实例,然后将我们的x_datay_data添加至图表中,在直角坐标系图表中,都是采用add_xaxisadd_yaxis两个方法分别来添加数据。
add_yaxis中有两个必传的参数,一个是y_axis是我们要传的数据,另一个参数series_name为系列名称。

from pyecharts.charts import Bar

# 新建一个图表命名为chart
chart = Bar()
# 添加数据
chart.add_xaxis(x_data)
chart.add_yaxis(series_name="销量", y_axis=y_data)

在Pyecharts中都提供了默认配置,在不做任何配置的情况下,我们的图表就已经完成了,便可以通过.render_notebook()将图表渲染至我们的notebook中了。

from pyecharts.charts import Bar

x_data = ['Apple', 'Samsung', 'Xiaomi', 'Transsion', 'Oppo', 'Others']
y_data = [232.1, 223.4, 168.5, 106.9, 104.8, 402.9]

chart = Bar()
chart.add_xaxis(x_data)
chart.add_yaxis(series_name="销量", y_axis=y_data)

chart.render_notebook()

效果如下
在这里插入图片描述
如果是在非notebool的环境中,我们需要将.render_notebook()换成.render().render()会在本地生成一个html文件,以pycharm为例:
在这里插入图片描述
如果用多个系列我们可以通过.add_yaxis依次添加

from pyecharts.charts import Bar

x_data = ['Apple', 'Samsung', 'Xiaomi', 'Transsion', 'Oppo', 'Others']
y_data_2024 = [232.1, 223.4, 168.5, 106.9, 104.8, 402.9]
y_data_2023 = [234.3, 226.7, 146.0, 94.9, 103.4, 358.9]

chart = Bar()
chart.add_xaxis(x_data)
chart.add_yaxis(series_name="2024年销量", y_axis=y_data_2024)
chart.add_yaxis(series_name="2023年销量", y_axis=y_data_2023)

chart.render_notebook()

在这里插入图片描述

常用配置

柱子宽度

在直方图中我们有两种方式来设置柱子宽度:

bar_width

一个是通过参数bar_width直接设置,支持绝对值如40或者百分比 如40%;

from pyecharts.charts import Bar

x_data = ['Apple', 'Samsung', 'Xiaomi', 'Transsion', 'Oppo', 'Others']
y_data_2024 = [232.1, 223.4, 168.5, 106.9, 104.8, 402.9]
y_data_2023 = [234.3, 226.7, 146.0, 94.9, 103.4, 358.9]

chart = Bar()
chart.add_xaxis(x_data)
chart.add_yaxis(series_name="2024年销量", y_axis=y_data_2024, bar_width=10)
chart.add_yaxis(series_name="2023年销量", y_axis=y_data_2023, bar_width="60%")

chart.render_notebook()

效果如下:
在这里插入图片描述

gap / category_gap
  • 另一种是通过设置柱子之间间隔大小来间接控制柱子的宽度,这其中又会包含两个参数,一个是gap用于设置不同系列之间柱子的间隔,另一个参数category_gap用于设置同一系列之间柱子间隔的大小,接受的数据为百分比格式,如40%;
from pyecharts.charts import Bar

x_data = ['Apple', 'Samsung', 'Xiaomi', 'Transsion', 'Oppo', 'Others']
y_data_2024 = [232.1, 223.4, 168.5, 106.9, 104.8, 402.9]
y_data_2023 = [234.3, 226.7, 146.0, 94.9, 103.4, 358.9]

chart = Bar()
chart.add_xaxis(x_data)
chart.add_yaxis(series_name="2024年销量", y_axis=y_data_2024)
chart.add_yaxis(series_name="2023年销量", y_axis=y_data_2023, gap='10%', category_gap='30%')

chart.render_notebook()

效果如下:
在这里插入图片描述
这里其实会更推荐大家采用第二种方式来进行配置,能配置的效果更多一些,也不会影响整体的布局。

另外一个小彩蛋,当我们设置gap为-100%时,可以实现重叠的效果,在有些复杂场景的图表样式配置时,会用到这种玩法。

from pyecharts.charts import Bar

x_data = ['Apple', 'Samsung', 'Xiaomi', 'Transsion', 'Oppo', 'Others']
y_data_2024 = [232.1, 223.4, 168.5, 106.9, 104.8, 402.9]
y_data_2023 = [234.3, 226.7, 146.0, 94.9, 103.4, 358.9]

chart = Bar()
chart.add_xaxis(x_data)
chart.add_yaxis(series_name="2024年销量", y_axis=y_data_2024)
chart.add_yaxis(series_name="2023年销量", y_axis=y_data_2023, gap='-100%', category_gap='30%')

chart.render_notebook()

在这里插入图片描述

堆叠效果

当我们需要将多系列柱子进行堆叠展示时,可以使用参数stack,当图表中stack参数值一样的系列便会进行堆叠展示,示例如下:

from pyecharts.charts import Bar

x_data = ['Apple', 'Samsung', 'Xiaomi', 'Transsion', 'Oppo', 'Others']
y_data_2024 = [232.1, 223.4, 168.5, 106.9, 104.8, 402.9]
y_data_2023 = [234.3, 226.7, 146.0, 94.9, 103.4, 358.9]

chart = Bar()
chart.add_xaxis(x_data)
chart.add_yaxis(series_name="2024年销量", y_axis=y_data_2024, stack='1')
chart.add_yaxis(series_name="2023年销量", y_axis=y_data_2023, stack='1')

chart.render_notebook()

效果如下:
在这里插入图片描述

标签

标签即显示在我们图表图形之上的文本,接下来我们学习两种常见的场景:

标签不显示

我们图表中标签默认都是显示的,当我们需要关闭标签显示时可通过label_opts=opts.LabelOpts(is_show=False)来实现,具体代码如下:

from pyecharts.charts import Bar
import pyecharts.options as opts

x_data = ['Apple', 'Samsung', 'Xiaomi', 'Transsion', 'Oppo', 'Others']
y_data_2024 = [232.1, 223.4, 168.5, 106.9, 104.8, 402.9]
y_data_2023 = [234.3, 226.7, 146.0, 94.9, 103.4, 358.9]

chart = Bar()
chart.add_xaxis(x_data)
chart.add_yaxis(series_name="2024年销量", y_axis=y_data_2024, stack='1', label_opts=opts.LabelOpts(is_show=False))
chart.add_yaxis(series_name="2023年销量", y_axis=y_data_2023, stack='2', label_opts=opts.LabelOpts(is_show=False))

chart.render_notebook()

效果如下:
在这里插入图片描述

标签位置

如下修改标签显示位置可以通过label_opts=opts.LabelOpts(position='top')来实现,position可接受的参数值有:

‘top’,‘left’,‘right’,‘bottom’,‘inside’,‘insideLeft’,‘insideRight’,‘insideTop’,‘insideBottom’
‘insideTopLeft’,'insideBottomLeft‘
‘insideTopRight’,‘insideBottomRight’

具体代码如下:

from pyecharts.charts import Bar
import pyecharts.options as opts

x_data = ['Apple', 'Samsung', 'Xiaomi', 'Transsion', 'Oppo', 'Others']
y_data_2024 = [232.1, 223.4, 168.5, 106.9, 104.8, 402.9]
y_data_2023 = [234.3, 226.7, 146.0, 94.9, 103.4, 358.9]

chart = Bar()
chart.add_xaxis(x_data)
chart.add_yaxis(series_name="2024年销量", y_axis=y_data_2024, stack='1', label_opts=opts.LabelOpts(position='insideTop'))
chart.add_yaxis(series_name="2023年销量", y_axis=y_data_2023, stack='2', label_opts=opts.LabelOpts(position='top'))

chart.render_notebook()

在这里插入图片描述

标签:Bar,add,chart,2024,直方图,2023,Pyecharts,data
From: https://blog.csdn.net/qq_27484665/article/details/145243275

相关文章

  • Bartender SDK C#调用二次开发 代码示例
    说明软件版本:Bartender2022是否支持32位:否SDK类型:Engine类调用(还有另一种风格的SDK,忘记是啥了)引用COM库参考路径:Seagull\BarTender2022\SDK\Assemblies\Seagull.BarTender.Print.dll可能只能用framework4.8跑启动引擎//启动引擎(第一次运行耗时较多)EnginebtEngine=......
  • Linux C 使用ZBar库解析二维码和条形码
    1.编译zbar库下载zbar库源码,这里需要注意下,如果识别的二维码中有中文的话,会出现乱码,一般二维码里中文为UTF-8编码,zbar会默认给你把UTF-8转换为ISO8859-1。有两种解决办法,一是自己再转换一下编码格式;二是修改下zbar源码,很简单,只需要修改源码目录下的zbar/qrcode/qrdectxt.c......
  • 小程序如何自定义tabbar?
    自定义tabBar在小程序中是一个常见的需求,尤其是当默认的tabBar不能满足设计或功能需求时。以下是在小程序中自定义tabBar的基本步骤和注意事项:1.隐藏默认的tabBar首先,你需要在app.json或app.config.json中设置"tabBar":{"hidden":true}来隐藏默认的tabBar。......
  • Mac电脑必备的菜单栏管理软件 Bartender 5
    Mac电脑必备的菜单栏管理软件Bartender5介绍Bartender5,是一款菜单栏管理软件,可以帮助用户隐藏、组织和自定义Mac菜单栏中的图标和通知。使用Bartender5,用户可以将不常用的图标隐藏起来,使菜单栏保持整洁,并只显示重要的通知和信息。此外,Bartender5还支持自定义图标和通知的显......
  • OpenCV基础:TrackBar控件实战
    在OpenCV中,createTrackbar和getTrackbarPos是用于创建和获取滑动条(Trackbar)控件的函数,常用于图像处理或调参界面的交互式应用。通过滑动条,用户可以动态调整参数(如图像处理中的阈值、滤波器强度等),并实时查看效果。 createTrackbar作用:在窗口中创建一个滑动条,允许用户通......
  • 科研绘图系列:R语言绘制Y轴截断分组柱状图(y-axis break bar plot)
    禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者!文章目录介绍特点意义加载R包数据下载导入数据数据预处理画图输出总结系统信息介绍Y轴截断分组柱状图是一种特殊的柱状图,其特点是Y轴的刻度被截断,即在某个范围内省略了......
  • PCL点云库入门——PCL库点云特征之FPFH点快速特征直方图(Fast Point Feature Histogram
    1、FPFH原理        快速点特征直方图(FastPointFeatureHistograms,简称FPFH)是对PFH(PointFeatureHistograms)计算方法的一种简化,具体内容看参考十四节内容。该方法的核心在于独立计算查询点的K邻域内每个点的简化点特征直方图(SimplifiedPointFeatureHistogram,简......
  • 方向梯度直方图
    HOG(HistogramofOrientedGradients,方向梯度直方图)是一种用于图像特征描述的技术,通常用于物体检测,尤其是在计算机视觉领域中。它通过捕捉图像的梯度信息来提取对象的形状和结构特征。梯度直方图是HOG特征的关键部分,下面详细解释其工作原理。1. 梯度概念梯度在数学上是一个向......
  • 【译】在分析器中使用 Meter Histogram(直方图)解锁见解
    您是否正在与应用程序中的性能瓶颈作斗争?不要再观望了!VisualStudio2022在其性能分析套件中引入了MeterHistogram(直方图)功能,为您提供了前所未有的分析和可视化直方图数据工具。MeterHistogram是VisualStudio性能分析套件的一个关键增强。此功能使您能够捕获和......
  • Flutter使用ScrollBar设置thumbVisibility属性出现Another exception was thrown: The
    ══╡EXCEPTIONCAUGHTBYSCHEDULERLIBRARY╞═════════════════════════════════════════════════════════Thefollowingassertionwasthrownduringaschedulercallback:TheScrollbar'sScrollController......