練習一:假設你獲取到了2017年內地電影票房前20的電影(列表a)和電影票房數據(列表b),那么如何更加直觀的展示該數據?
a = ["戰狼2","速度與激情8","功夫瑜伽","西游伏妖篇","變形金剛5:最后的騎士","摔跤吧!爸爸","加勒比海盜5:死無對證","金剛:骷髏島","極限特工:終極回歸","生化危機6:終章","乘風破浪","神偷奶爸3","智取威虎山","大鬧天竺","金剛狼3:殊死一戰","蜘蛛俠:英雄歸來","悟空傳","銀河護衛隊2","情圣","新木乃伊",]
b = [56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]
from matplotlib import pyplot as plt
import matplotlib
"""繪制條形圖"""
font = {'family': 'MicroSoft YaHei'}
matplotlib.rc('font', **font) # 使支持中文
x = ["戰狼2","速度與激情8","功夫瑜伽","西游伏妖篇","變形金剛5:最后的騎士","摔跤吧!爸爸","加勒比海盜5:死無對證","金剛:骷髏島","極限特工:終極回歸","生化危機6:終章","乘風破浪","神偷奶爸3","智取威虎山","大鬧天竺","金剛狼3:殊死一戰","蜘蛛俠:英雄歸來","悟空傳","銀河護衛隊2","情圣","新木乃伊",]
y = [56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]
plt.figure(figsize=(20, 8), dpi=80) # 設置圖形大小
# plt.bar(range(len(x)), y, width=0.3) # 繪制條形圖,線條寬度
plt.barh(range(len(x)), y, height=0.3, color='orange') # 繪制橫著的條形圖,橫著的用height控制線條寬度
# 設置字符串到x軸
plt.yticks(range(len(x)),x)
plt.grid(alpha=0.3) # 添加網格
plt.ylabel('電影名稱')
plt.xlabel('票房')
plt.title('票房前20的電影')
plt.show()
效果圖
練習二:假設知道了列表a中電影分別在2017-09-14(b_14),2017-09-15(b_15),2017-09-16(b_16)三天的票房,為了展示列表中電影本身的票房以及同其它電影的數據對比情況,應該如何更加直觀的呈現數據?
a = ["猩球崛起3:終極之戰","敦刻爾克","蜘蛛俠:英雄歸來","戰狼2"]
b_16 = [15746,312,4497,319]
b_15 = [12357,156,2045,168]
b_14 = [2358,399,2358,362]
from matplotlib import pyplot as plt
import matplotlib
font = {'family': 'MicroSoft YaHei'}
matplotlib.rc('font', **font) # 使支持中文
a = ["猩球崛起3:終極之戰","敦刻爾克","蜘蛛俠:英雄歸來","戰狼2"]
b_16 = [15746,312,4497,319]
b_15 = [12357,156,2045,168]
b_14 = [2358,399,2358,362]
bar_width = 0.2 # 繪制多個條形圖,這里不能大于0.3
# 讓后兩個條形,向后移動一個bar_width
x_14 = list(range(len(a)))
x_15 = [i+bar_width for i in x_14]
x_16 = [i+2*bar_width for i in x_14]
plt.figure(figsize=(20, 8), dpi=80) # 設置圖形大小
plt.xticks(x_15, a) # 設置x軸刻度
plt.bar(range(len(a)), b_14, width=bar_width, label='9月14日')
plt.bar(x_15, b_15, width=bar_width, label='9月15日')
plt.bar(x_16, b_16, width=bar_width, label='9月16日')
plt.legend() # 設置圖例
plt.xlabel('電影名稱')
plt.ylabel('票房/萬')
plt.title('對比票房')
plt.savefig('./02.png')
plt.show()
效果圖
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持我們。
時間: 2019-08-08