matplotlib(四)直方圖和餅狀圖

頻率分佈直方圖

直方圖不同於條形圖,直方圖更多涉及統計學。橫座標表示每組的端點,縱座標表示頻數,矩形的高表示對應的頻數。

簡單示例

#有200部電影,統計時長分佈狀態
a = [114, 130, 127, 91, 103, 140, 138, 141, 144, 147, 131, 145, 138, 150, 133, 123, 145, 145, 125, 128, 129, 135, 153, 98, 110, 139, 136, 150, 141, 131, 125, 138, 105, 114, 110, 106, 115, 101, 110, 93, 99, 98, 91, 114, 118, 109, 98, 105, 100, 113, 106, 91, 120, 104, 114, 123, 115, 100, 128, 104, 103, 104, 92, 120, 92, 114, 102, 92, 119, 115, 102, 96, 91, 99, 116, 105, 111, 100, 110, 113, 108, 120, 119, 116, 110, 118, 119, 102, 118, 103, 118, 102, 126, 114, 132, 130, 118, 106, 109, 126, 122, 101, 122, 108, 110, 140, 108, 112, 103, 113, 123, 130, 127, 123, 123, 131, 120, 109, 133, 126, 119, 119, 104, 95, 105,117, 113, 105, 115, 121, 111, 92, 114, 111, 114, 114, 114, 101, 116, 102, 117, 101, 120, 114, 119, 108, 103, 109, 113, 99, 108, 95, 111, 106, 106, 92, 91, 113, 118, 108, 92, 95, 104, 102, 98, 100, 112, 114, 103, 103, 101, 114, 106, 111, 123, 101, 100, 124, 119, 92, 91, 108, 102, 95, 108, 110, 113, 121, 111, 118, 115, 129, 126, 129, 118, 120, 96, 94, 113, 110]

plt.figure(figsize=(20,8),dpi=80)
d = 2 #組距
num_bins = (max(a) - min(a))//d

# 顯示頻率density = True
plt.hist(a,num_bins)

#設置x刻度
plt.xticks(range(min(a),max(a)+d,d))

plt.grid()
plt.show()

簡單示例

a.繪製直方圖

plt.hist(a,num_bins)

num_bins是組數
density = True 顯示頻率

b.x軸y軸刻度顯示,描述信息,網格

#x軸刻度顯示
plt.xticks(range(min(a),max(a)+d,d))

#描述信息
plt.xlabel("電影時長")
plt.ylabel("電影數量")
plt.title('電影時長與電影數量分佈圖')


# 添加網格顯示
plt.grid(linestyle=":", alpha=0.5)

在這裏插入圖片描述

interval = [ 0, 5, 10 , 15 , 20 , 25 , 30 , 35 , 45 , 45 , 60 , 90 ]
width = [ 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 15 , 33 , 60 ]
quantity = [ 836 , 2737 , 3723 , 3926 , 3596 , 1438 , 3273 ,642 ,824, 613, 215, 47 ]

plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(12),quantity,width=1)

#設置x軸的刻度
_x = [i-0.5 for i in range(13)]
_xtick_labels = interval + [150]

plt.xticks(_x,_xtick_labels)
plt.grid()

plt.show()

在這裏插入圖片描述

餅狀圖

簡單圖例

x = ['天降之物','喜洋洋與灰太狼','鬼滅之刃','一拳超人','魔王大人']
y = [11111,22222,66666,33333,23333]

plt.figure(figsize=(20, 8), dpi=100)
 
# 繪製餅圖
plt.pie(y,labels = x, autopct="%1.2f%%", colors=['b','r','g','y','c'])
 
# 顯示圖例
plt.legend()
 
# 添加標題
plt.title("電影排片佔比")

# 添加axis(使圖像變圓)
plt.axis('equal')
plt.show()

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章