首页技术文章正文

Python培训之可视化技术:绘制华夫饼图

更新时间:2022-06-13 来源:黑马程序员 浏览量:

IT培训班

  今天的Python培训课程,我们介绍一下华夫饼图。华夫饼图亦称为直角饼图,它是饼图的变体,可以直观展示部分与整体的比例。华夫饼图一般由100个方格组成,其中每个方格代表1%,方格不同的颜色代表不同的分类,常见于比较同类型指标完成比例的场景,例如电影上座率、公司业务实际完成率等。

  pywaffle是Python中专门绘制华夫饼图的包,它提供了一个继承自Figure的子类Waffle,通过将Waffle类传递给figure()函数的FigureClass参数即可创建华夫饼图。figure()函数中创建华夫饼图的常用参数如下。

  .FigureClass:可以是Figure类或Fgiure子类。

  .rows:表示华夫饼图的行数。

  .columns:表示华夫饼图的列数。

  .values:表示数据,可以接收数组或字典。若values参数接收一个字典,则将字典的键作为华夫饼如的图例项。

  .colors:表示每个分类数据的颜色列表。

  .vertical:表示是否按垂直方向绘制华夫饼图,默认为False。

  .title:表示标题,可以接收一个字典,其中字典的键为title()函数的关键字参数。

  .legend:表示图例,可以接收一个字典,其中字典的键为legend()函数的关键字参数。

  例如,创建一个10行10列的华夫饼图,具体代码如下。

plt.figure(
    FigureClass=Waffle,  # 指定画布类为Waffle
    rows=10,             # 行数设为10
    columns=10,          # 列数设为10
    values=[45, 55]      # 一组数据
)

  假设某影院于周六上映了电影《少年的你》,并统计了1号观影厅的上座率。下面结合matplotlib和pywaffle绘制一个说明1号厅上座率的华夫饼图,示例代码如下。

import matplotlib.pyplot as plt
from pywaffle import Waffle
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
# 绘制华夫饼图
plt.figure(FigureClass=Waffle, rows=10, columns=10,
           values=[95, 5], vertical=True, colors=['#20B2AA', '#D3D3D3'],
           title={ 'label' : '电影《少年的你》上座率'},
           legend={'loc': 'upper right', 'labels': ['占座', '空座']}
           )
plt.show()

  运行程序,效果如图8-22所示。

1655087205487_电影《少年的你》上座率的华夫饼图.jpg

 图8-22 电影《少年的你》上座率的华夫饼图

  图8-22中华夫饼图总共由100个方格组成,其中绿色的方格代表上座的比例,灰色的方格代表空座的比例。由图8-22可知,电影《少年的你》的上座率为95%。


分享到:
在线咨询 我要报名
和我们在线交谈!