首頁技術(shù)文章正文

Python培訓之可視化技術(shù):繪制華夫餅圖

更新時間:2022-06-13 來源:黑馬程序員 瀏覽量:

IT培訓班

  今天的Python培訓課程,我們介紹一下華夫餅圖。華夫餅圖亦稱為直角餅圖,它是餅圖的變體,可以直觀展示部分與整體的比例。華夫餅圖一般由100個方格組成,其中每個方格代表1%,方格不同的顏色代表不同的分類,常見于比較同類型指標完成比例的場景,例如電影上座率、公司業(yè)務實際完成率等。

  pywaffle是Python中專門繪制華夫餅圖的包,它提供了一個繼承自Figure的子類Waffle,通過將Waffle類傳遞給figure()函數(shù)的FigureClass參數(shù)即可創(chuàng)建華夫餅圖。figure()函數(shù)中創(chuàng)建華夫餅圖的常用參數(shù)如下。

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

  .rows:表示華夫餅圖的行數(shù)。

  .columns:表示華夫餅圖的列數(shù)。

  .values:表示數(shù)據(jù),可以接收數(shù)組或字典。若values參數(shù)接收一個字典,則將字典的鍵作為華夫餅如的圖例項。

  .colors:表示每個分類數(shù)據(jù)的顏色列表。

  .vertical:表示是否按垂直方向繪制華夫餅圖,默認為False。

  .title:表示標題,可以接收一個字典,其中字典的鍵為title()函數(shù)的關(guān)鍵字參數(shù)。

  .legend:表示圖例,可以接收一個字典,其中字典的鍵為legend()函數(shù)的關(guān)鍵字參數(shù)。

  例如,創(chuàng)建一個10行10列的華夫餅圖,具體代碼如下。

plt.figure(
    FigureClass=Waffle,  # 指定畫布類為Waffle
    rows=10,             # 行數(shù)設(shè)為10
    columns=10,          # 列數(shù)設(shè)為10
    values=[45, 55]      # 一組數(shù)據(jù)
)

  假設(shè)某影院于周六上映了電影《少年的你》,并統(tǒng)計了1號觀影廳的上座率。下面結(jié)合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%。


分享到:
在線咨詢 我要報名
和我們在線交談!