python中的條形圖

假設你獲取到了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
from matplotlib import font_manager

my_font = font_manager.FontProperties(fname="C:/Windows/Fonts/simfang.ttf")  # 加載本地windows中的字體
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]
# 設置圖形大小
plt.figure(figsize=(20, 8), dpi=80)
# 繪製柱狀圖
plt.bar(range(len(a)), b, width=0.3)  #width柱狀圖的寬度
# 設置字符串
plt.xticks(range(len(a)), a, fontproperties=my_font, rotation=45)
# 設置網格
plt.grid(0.3)
# 設置圖片的保存位置
plt.savefig("C:\\Users\\Administrator\\Desktop\\new.png")
plt.show()

在這裏插入圖片描述

from matplotlib import pyplot as plt
from matplotlib import font_manager

my_font = font_manager.FontProperties(fname="C:/Windows/Fonts/simfang.ttf")  # 加載本地windows中的字體
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]
# 設置圖形大小
plt.figure(figsize=(20, 8), dpi=80)
# 繪製柱狀圖
plt.barh(range(len(a)), b, height=0.3, color="orange")
# 設置字符串
plt.yticks(range(len(a)), a, fontproperties=my_font)
# 設置網格
plt.grid(0.3)
# 設置圖片的保存位置
plt.savefig("C:\\Users\\Administrator\\Desktop\\new.png")
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
from matplotlib import font_manager

my_font = font_manager.FontProperties(fname="C:/Windows/Fonts/simfang.ttf")  # 加載本地windows中的字體
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
x_14 = list(range(len(a)))
x_15 = [i + bar_width for i in x_14]
x_16 = [i + bar_width * 2 for i in x_14]
# 設置圖形大小
plt.figure(figsize=(20, 8), dpi=80)
# 繪製柱狀圖
plt.bar(x_14, b_14, width=bar_width, label="9月14日")  #width 柱狀條形的寬度
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(prop=my_font)
# 設置x軸的刻度
plt.xticks(x_15, a, fontproperties=my_font)
plt.savefig("C:\\Users\\Administrator\\Desktop\\new.png")
# 設置網格
plt.grid()
plt.show()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章