matplotlib 數(shù)據(jù)可視化 - 餅狀圖

import matplotlib.pyplot as plt 
import numpy as np

餅狀圖

使用pie()函數(shù)來制作餅狀圖。先來看一個簡單的例子。

labels = ['蘋果','華為','小米','三星']
values = [10,30,45,15]
colors = ['red','yellowgreen','blue','lightskyblue']
plt.pie(values,labels=labels,colors=colors)
plt.show()

哦,上圖竟然是扁的!O__O "…,沒關(guān)系,一步一步來。

先來解析一下餅圖的繪制方法吧!

plt.pie(values,labels=labels,colors=colors)

pile()函數(shù)接收一個數(shù)據(jù)集合,將期求和后再對各元素分配比例,再接收一個列表,存放各元素對應(yīng)的類別,最后一個元素則可以指定各元素的顏色表現(xiàn)。

指定圖表的大小

接下來,將上圖的扁的餅圖調(diào)成一個標(biāo)準(zhǔn)的圓O(∩_∩)O~~

labels = ['蘋果','華為','小米','三星']
values = [10,30,45,15]

'''在繪制餅圖之前,指定圖表的大小,令其長寬一致'''
plt.figure(figsize=(6,6))

colors = ['red','yellowgreen','blue','lightskyblue']
plt.pie(values,labels=labels,colors=colors)
plt.show()

上面是一種改善圖表的方法,另一種方法是使用axis()函數(shù)

labels = ['蘋果','華為','小米','三星']
values = [10,30,45,15]
colors = ['red','yellowgreen','blue','lightskyblue']
plt.pie(values,labels=labels,colors=colors)

'''equal表示平等、平衡的意思,即將x/y軸寬度調(diào)整為一致,與上例道理上是一樣的'''
plt.axis('equal')

plt.show()

突出顯示某一塊扇形

explode屬性可以指定對應(yīng)元素脫離餅圖的大小,取值范圍0~1,值越大,脫離程度越大。

labels = ['蘋果','華為','小米','三星']
values = [10,30,45,15]
colors = ['red','yellowgreen','blue','lightskyblue']

explode = [0.3,0,0,0]
plt.pie(values,labels=labels,colors=colors,explode=explode)

plt.axis('equal')
plt.show()

讓餅狀圖放置一定的角度

startangle屬性可以指定餅圖放置的角度,取值為0~360。

labels = ['蘋果','華為','小米','三星']
values = [10,30,45,15]
colors = ['red','yellowgreen','blue','lightskyblue']
explode = [0.3,0,0,0]

'''順便加個標(biāo)題'''
plt.title('餅狀圖')
plt.pie(values,labels=labels,colors=colors,explode=explode,startangle=180)

plt.axis('equal')
plt.show()

顯示各元素所占的百分比

autopct可以在第一塊的中間位置添加文本標(biāo)簽來顯示百分比。

shadow=True可以為圖表添加陰影效果。

labels = ['蘋果','華為','小米','三星']
values = [10,30,45,15]
colors = ['red','yellowgreen','blue','lightskyblue']
explode = [0.3,0,0,0]
plt.title('餅狀圖')

plt.pie(values,
        labels=labels,
        colors=colors,
        explode=explode,
        shadow=True,  # 陰影
        autopct='%1.1f%%',  # 添加百分比,浮點數(shù),保留一位
        startangle=180)

plt.axis('equal')
plt.show()

為 DataFrame 繪制餅圖

import pandas as pd

data = {'one':[1,3,4,5,5],
        'two':[2,4,5,2,7],
        'three':[3,2,4,8,9]}
df = pd.DataFrame(data)
df['one'].plot(kind='pie',figsize=(6,6))  # 指定圖表類型和大小
plt.show()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,205評論 3 119
  • 有人說為了夢想,也有人說為了感受生活,也有人說為了享受生活。而我真的不知道活著干什么?而你呢!
    龍華CQK閱讀 290評論 0 0
  • 2018年3月25日,獲得第一次提名。 2018年3月26日,獲得第二次提名。 這一切就像夢一樣,因為覺得提名這個...
    思遠同學(xué)閱讀 153評論 0 0
  • 每年的母親節(jié),朋友圈里都會經(jīng)歷一次腥風(fēng)血雨。大家都在努力表態(tài),表明自己的孝順。也正因為如此,很多人都認為不應(yīng)該在朋...
    書生夢話閱讀 1,119評論 0 0

友情鏈接更多精彩內(nèi)容