利用 matplotlib 製作條形圖

利用 matplotlib 製作條形圖

排列在工作表的列或行中的數據可以繪製到柱狀圖(條形圖)中。

特點:繪製連離散的數據,能夠一眼看出各個數據的大小,比較數據之間的差別。(統計/對比)

我們用一個例子來描述利用matplotlib怎樣製作條形圖。
例:假設你獲取到了2019年內地電影票房前20的電影(列表a)和電影票房數據(列表b),請展示該數據。

1、縱向條形圖:
from matplotlib import pyplot as plt
from matplotlib import font_manager
#a和b爲分別的兩類數據,展示爲兩個不同的條形圖
a = ['流浪地球','瘋狂的外星人','飛馳人生','大黃蜂','熊出沒-原始時代','新喜劇之王']
b = [38.13,19.85,14.89,11.36,6.47,5.93]
#設置字體
my_font = font_manager.FontProperties(fname='F:/HYTianZhenTi.ttf',size=10)
plt.figure(figsize=(20,8),dpi=80)

在這裏插入圖片描述
在條形圖中,還可以指定顯示的顏色,以及在每個條形圖上顯示對應的數據等。

from matplotlib import pyplot as plt
from matplotlib import font_manager

a = ['流浪地球','瘋狂的外星人','飛馳人生','大黃蜂','熊出沒-原始時代','新喜劇之王']
b = [38.13,19.85,14.89,11.36,6.47,5.93]
my_font = font_manager.FontProperties(fname='F:/HYTianZhenTi.ttf',size=20)
plt.figure(figsize=(20,8),dpi=80)
#
#繪製條形圖
#這是在給b列表的數據設置顏色,分別爲red,green等,可以進行縮寫。
rects = plt.bar(a,[float(i) for i in b], width=0.3, color=['r','g','b','r','g','b'])
#設置x,y軸的刻度,x軸爲a列表的數據即電影名稱
plt.xticks(range(len(a)), a, fontproperties=my_font)
plt.yticks(range(0,41,5), range(0,41,5))
#設置x軸和y軸的名稱
plt.xlabel('電影',fontproperties=my_font)
plt.ylabel('票房',fontproperties=my_font)

#在條形圖上加標註(水平居中)
for rect in rects:
    height = rect.get_height()
    plt.text(rect.get_x() + rect.get_width() / 2, height + 0.3, str(height), ha='center')

plt.show()

在這裏插入圖片描述

2、橫向條形圖:
from matplotlib import pyplot as plt
from matplotlib import font_manager

a = ['流浪地球','瘋狂的外星人','飛馳人生','大黃蜂','熊出沒-原始時代','新喜劇之王']
b = [38.13,19.85,14.89,11.36,6.47,5.93]
my_font = font_manager.FontProperties(fname='F:/HYTianZhenTi.ttf',size=10)
plt.figure(figsize=(20,8),dpi=80)

#繪製橫向條形圖
#height=0.5 條形的寬度
rects = plt.barh(range(len(a)),b, height=0.5,color='y')
plt.yticks(range(len(a)),a,fontproperties=my_font,rotation=45)

plt.xlabel('電影',fontproperties=my_font)
plt.ylabel('票房',fontproperties=my_font)

#在條形圖上加標註(水平居中)
for rect in rects:
    width = rect.get_width()
    plt.text(width,rect.get_y()+0.3/2, str(width), va='center')

plt.show()

在這裏插入圖片描述

3、並列和羅列條形圖:
from matplotlib import pyplot as plt
import numpy as np
index=np.arange(4)
BJ=[50,53,55,60]
Sh=[44,66,55,41]
#並列
plt.bar(index,BJ,width=0.3,color='blue')
plt.bar(index+0.3,Sh,width=0.3,color='green')

plt.xticks(index+0.3/2,index)
#羅列
# plt.bar(index,Sh,bottom=BJ,width=0.3,color='green')
plt.show()

在這裏插入圖片描述
在這裏插入圖片描述

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