大家好,今天分享的是如何使用Pyecharts绘制直方图。
昨天回顾:
1.我们了解pyecharts.faker
模块的参数和使用
2.学会了xaxis_opts=opts.AxisOpts()
来设置设置X轴参数
3.学习了如何在代码中查看图表
忘了的可以回顾一下Pyecharts第二天的内容:数据可视化Pyecharts第二天:参数认识 - 掘金 (juejin.cn)
好的,下面我们进入今天的内容:
javascript
from pyecharts.charts import Bar
from pyecharts.faker import Faker
from pyecharts import options as opts
bar = Bar()
bar.add_xaxis(Faker.choose())
bar.add_yaxis('商家A', Faker.values())
bar.add_yaxis('商家B', Faker.values())
bar.render_notebook()
我们首先绘制最简单的直方图:
from pyecharts.charts import Bar ; from pyecharts.faker import Faker; from pyecharts import options as opts
这三行代码分别是导入 Bar
类,用于创建柱状图; 导入 Faker
类,用于生成虚假的数据;导入 opts
,用于设置图表的选项。
ini
bar = Bar()
这行代码是创建了一个 Bar
对象,用于表示柱状图。
less
bar.add_xaxis(Faker.choose())
这行代码使用 add_xaxis()
方法设置柱状图的 x 轴数据。Faker.choose()
是一个用于生成虚假数据的函数,它返回一个列表,作为 x 轴的取值。
less
bar.add_yaxis('商家B', Faker.values())
这行代码使用 add_yaxis()
方法添加第一组柱状图的数据。'商家A'
是该组数据的名称,Faker.values()
是一个用于生成虚假数据的函数,它返回一个列表,作为该组数据的取值。 最后使用bar.render_notebook()
对图表进行渲染即可。
接下来我们给直方图添加一些功能:
javascript
from pyecharts.charts import Bar
from pyecharts.faker import Faker
from pyecharts import options as opts
bar = Bar()
bar.add_xaxis(Faker.choose())
bar.add_yaxis('A公司销售', Faker.values())
bar.add_yaxis('B公司销售', Faker.values())
bar.set_series_opts(
markline_opts=opts.MarkLineOpts(
data=[opts.MarkLineItem(type_='average', name='平均值')]
)
)
bar.render_notebook()
我们从图像中可以看到我们在直方图所添加的功能,算出A公司销售和B公司销售的平均值。
我们添加了这段代码就可以达成这样的效果。
ini
bar.set_series_opts(
markline_opts=opts.MarkLineOpts(
data=[opts.MarkLineItem(type_='average', name='平均值')]
)
)
其实本质就是使用 set_series_opts()
方法设置柱状图的系列选项,添加了一个标记线(markline)选项。
markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_='average', name='平均值')])
这行代码创建了一个 MarkLineOpts
对象,并设置了标记线的选项。data
参数是一个列表,用于指定标记线的数据项。在这里,我们使用了 MarkLineItem
类创建了一个标记线项,设置了 type_
参数为 'average'
,表示计算并显示平均值。name
参数设置了标记线项的名称为 '平均值'
。除了平均值这个功能以外,我们还有其他的功能,大家感兴趣可以查略官方文档。
我们绘制了竖直直方图,那我们能不能绘制水平直方图呢?
javascript
from pyecharts.charts import Bar
from pyecharts.faker import Faker
from pyecharts import options as opts
bar = Bar()
bar.add_xaxis(Faker.choose())
bar.add_yaxis('商家A', Faker.values())
bar.add_yaxis('商家B', Faker.values())
bar.reversal_axis()
bar.render_notebook()
从代码中我们可以看出竖直直方图和水平直方图其实只有一行代码不一样。
就是这行代码bar.reversal_axis()
,通过这行代码我们实现了将直方图进行翻转。
还有看起来更加高级的,就是我们能不能将商家A和商家B叠在一起呢,显得更加有逼格。
javascript
from pyecharts.charts import Bar
from pyecharts.faker import Faker
from pyecharts import options as opts
bar = Bar()
bar.add_xaxis(Faker.choose())
bar.add_yaxis('商家A', Faker.values(), stack='stack')
bar.add_yaxis('商家B', Faker.values(), stack='stack')
bar.set_global_opts(title_opts=opts.TitleOpts(title='堆叠图'))
bar.render_notebook()
其实我们同样也只需要添加一点东西,就可以达成这种效果。
在bar.add_yaxis('商家A', Faker.values())
和bar.add_yaxis('商家B', Faker.values())
这两行代码中Faker.values()
的后面再加一个stack='stack'
就好了,这个代码是堆砌的意思。最后就成这样:
arduino
bar.add_yaxis('商家A', Faker.values(), stack='stack')
bar.add_yaxis('商家B', Faker.values(), stack='stack')
今天的知识点总结:
1.学会了绘制基本的直方图。 2.学会了给直方图添加平均数等标记线这一功能 3.学会了将直方图进行翻转 4.学会了绘制堆砌图
好了,今天就讲到这里了,希望与各位一起学习数据可视化,有问题可以在评论区提问,我非常愿意与大家一同探讨