更新时间:2022-06-13 来源:黑马程序员 浏览量:
今天的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所示。
图8-22 电影《少年的你》上座率的华夫饼图
图8-22中华夫饼图总共由100个方格组成,其中绿色的方格代表上座的比例,灰色的方格代表空座的比例。由图8-22可知,电影《少年的你》的上座率为95%。
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19