1. 程式人生 > >Python視覺化中的Matplotlib(5.直方圖、條形圖以及餅圖的用法和詳細的引數)

Python視覺化中的Matplotlib(5.直方圖、條形圖以及餅圖的用法和詳細的引數)

1.  直方圖   hist()

     直方圖的引數只有一個X

import matplotlib.pyplot as plt  # 匯入繪圖模組
import numpy as np  # 匯入需要生成資料的numpy模組
'''直方圖'''
'''表示概率,根據x的值來顯示x中值出現的概率圖'''
'''
    引數說明: normed=True:將值進行歸一化處理,形成概率密度,預設值為False
            color: 修改顏色
             設定直方圖的方向:orientation='horizontal': 水平方向
                            預設orientation='vertical' 垂直方向
             
'''
x = np.random.randint(0,10,10)
plt.hist(x,density=True,orientation='horizontal',color='r')
plt.show()

2. 條形圖      條形圖有兩個引數 x,y!

'''條形圖 bar()、barh()(條形圖有兩個引數x,y)'''
x = np.linspace(0,5,5)
y = np.random.randint(0,20,size=5)
'''垂直條形圖'''
axes = plt.subplot(1,2,1)
axes.bar(x,y)
'''水平條形圖'''
axes2 = plt.subplot(1,2,2)
axes2.barh(x,y)
plt.show()
bar()                                                         barh()        

 

3.    餅圖  pie()(畫餅圖時也有一個引數x)

      餅圖適合展示各部分佔總體的比例,而條形圖適合比較各部分的大小

'''
餅圖  pie()
pie() 引數說明: 
       (1)labels=['']  設定相對應資料的標籤
        (2) labeldistance:設定標籤距離圓心的距離:labeldistance (比例值)(值越大離圖就越遠)     
        (3)autopct='%1.1f%%' : 設定餅圖上顯示資料,
                            (最外面有兩個%(轉化為百分比),裡面1.1f%即保留一位小數加%)
                                                        1.2f 即保留兩位小數  
        (4)pctdistance :  設定比例值文字距離圓心的距離,值越大離圓心就越遠  
        (5) explode = () : 引數設定每一塊頂點距離圓心的長度(比例值)
                            裡面的值的數量和資料是相同的數量,不想設定時直接
                            給個0即可,注意用小括號括起來
        (6)  colors 引數設定每一塊的顏色
        (7) shadow : 設定是否繪製陰影
        (8) startangle : 設定餅圖旋轉的度數 (逆時針旋轉)
'''
'''可以設定總的百分比沒有到達1,不夠的地方就沒有佔滿餅圖,即把沒有佔滿的地方空出來'''
p = np.array([0.6,0.2,0.1])
axes = plt.subplot(1,2,1)
'''第一個餅圖'''
axes.pie(p,labels=['dog','cat','other'],autopct='%1.1f%%',pctdistance=0.8,startangle=60)
# plt.figure(figsize=(4,4))  # 第一種方式讓餅圖更圓
axes.axis('equal')    # 第二種方式讓餅圖更圓
axes.set_title('one')  # 設定標題
'''第二個餅圖'''
p2 = np.array([0.4,0.2,0.15,0.15,0.1])
axes2 = plt.subplot(1,2,2)
axes2.pie(p2,labels=['dog','cat','brid','cow','sheep'],
            labeldistance=1.3,explode=(0,0.2,0.3,0,0.1),shadow=True,
          autopct='%1.2f%%')
axes2.set_title('two')  # 設定標題
axes2.axis('equal')
plt.show()