Matplotlib 绘制柱状图 - 电影票房

╰+攻爆jí腚メ 2023-06-06 07:54 151阅读 0赞

运行环境 : python 3.6.0

用 Matplotlib 的 bar 和 barh 方法绘制散点图 , 绘制票房统计 , 数据来源于 http://58921.com/alltime/2019

核心代码 (bar方法) :

  1. # -*- encoding: utf-8 -*-
  2. # @Version : Python 3.6.0
  3. # @Function : 本代码为利用 Matplotlib 库 画柱状图
  4. import numpy as np
  5. from matplotlib import pyplot as plt
  6. from matplotlib.font_manager import FontProperties # 字体属性设置
  7. font = FontProperties(fname=r"C:\windows\fonts\simsun.ttc", size=14) # 使用本地字体(Windows操作系统)
  8. names = ['哪吒之魔童降世', '流浪地球', '复仇者联盟4:终局之战', '我和我的祖国', '疯狂的外星人', '中国机长', '飞驰人生', '烈火英雄', '速度与激情:特别行动', '蜘蛛侠:英雄远征',
  9. '扫毒2天地对决', '大黄蜂', '惊奇队长', '比悲伤更悲伤的故事', '哥斯拉2:怪兽之王', '阿丽塔:战斗天使', '攀登者', '银河补习班', '狮子王', '反贪风暴4 '] # 单位(亿)
  10. box_office = [49.26, 46.18, 42.05, 23.36, 21.83, 21.23, 17.03, 16.74, 14.18, 14.01, 12.85, 11.38, 10.25, 9.46, 9.27,
  11. 8.88, 8.64, 8.63, 8.23, 7.88]
  12. plt.figure(figsize=[20,8],dpi=80)
  13. plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.4) # 设置图像位置
  14. plt.bar(names, box_office, width=0.3, color='green')
  15. plt.xlabel("影视名称",fontproperties='SimHei', size=16)
  16. plt.ylabel("总票房(单位:亿)",fontproperties='SimHei', rotation=90, size=16)
  17. plt.title("2019电影票房排行榜",fontproperties='SimHei', size=18)
  18. plt.xticks(names, fontproperties='SimHei', rotation=90, size=16)
  19. plt.savefig('./2019电影票行排行.jpg')
  20. plt.show()

运行结果展示 :

2019101014093661.png

核心代码 (barh方法) :

  1. # -*- encoding: utf-8 -*-
  2. # @Version : Python 3.6.0
  3. # @Function : 本代码为利用 Matplotlib 库 画柱状图
  4. import numpy as np
  5. from matplotlib import pyplot as plt
  6. from matplotlib.font_manager import FontProperties # 字体属性设置
  7. font = FontProperties(fname=r"C:\windows\fonts\simsun.ttc", size=14) # 使用本地字体(Windows操作系统)
  8. names = ['哪吒之魔童降世', '流浪地球', '复仇者联盟4:终局之战', '我和我的祖国', '疯狂的外星人', '中国机长', '飞驰人生', '烈火英雄', '速度与激情:特别行动', '蜘蛛侠:英雄远征',
  9. '扫毒2天地对决', '大黄蜂', '惊奇队长', '比悲伤更悲伤的故事', '哥斯拉2:怪兽之王', '阿丽塔:战斗天使', '攀登者', '银河补习班', '狮子王', '反贪风暴4 '] # 单位(亿)
  10. box_office = [49.26, 46.18, 42.05, 23.36, 21.83, 21.23, 17.03, 16.74, 14.18, 14.01, 12.85, 11.38, 10.25, 9.46, 9.27,
  11. 8.88, 8.64, 8.63, 8.23, 7.88]
  12. plt.figure(figsize=[20,15],dpi=80)
  13. plt.subplots_adjust(left=0.2, right=0.9, top=0.9, bottom=0.1) # 设置图像位置
  14. plt.barh(names, box_office, height=0.3, color='green') # 绘制条形图
  15. plt.xlabel("总票房(单位:亿)",fontproperties='SimHei', size=16)
  16. plt.ylabel("影视名称",fontproperties='SimHei', rotation=90, size=16)
  17. plt.title("2019电影票房排行榜",fontproperties='SimHei', size=18) # 标题
  18. plt.yticks(names, fontproperties='SimHei', rotation=0, size=16) # y轴
  19. plt.grid(alpha=0.3) # 绘制网格
  20. # 反转坐标轴
  21. ax = plt.gca()
  22. ax.invert_yaxis()
  23. plt.savefig('./2019电影票行排行.jpg')
  24. plt.show()

运行结果展示 : 20191010141209539.png

票房对比 :

核心代码 (数据来源 http://www.cbooo.cn/movieday) :

  1. # -*- encoding: utf-8 -*-
  2. # @Version : Python 3.6.0
  3. # @Function : 本代码为利用 Matplotlib 库 画柱状图
  4. import numpy as np
  5. from matplotlib import pyplot as plt
  6. from matplotlib.font_manager import FontProperties # 字体属性设置
  7. font = FontProperties(fname=r"C:\windows\fonts\simsun.ttc", size=14) # 使用本地字体(Windows操作系统)
  8. names = ["猩球崛起3:终极之战", "敦刻尔克", "蜘蛛侠英雄归来", "战狼2"]
  9. b_16 = [15746, 312, 4497, 319]
  10. b_15 = [12357, 156, 2045, 168]
  11. b_14 = [2358, 399, 2358, 362]
  12. bar_width = 0.15 # 单个柱状图的宽度
  13. # x_14 = list(range(len(names)))
  14. # x_15 = [i+bar_width for i in x_14]
  15. # x_16 = [i+bar_width*2 for i in x_14]
  16. day_01 = np.arange(len(names))
  17. day_02 = day_01 + bar_width
  18. day_03 = day_01 + bar_width*2
  19. print(bar_width*2)
  20. print(day_01)
  21. print(day_02)
  22. print(day_03)
  23. plt.figure(figsize=[20,15], dpi=80) # 设置图形大小
  24. plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1) # 设置图像位置
  25. plt.bar(day_01, b_14, width=bar_width, label="9月14日")
  26. plt.bar(day_02, b_15, width=bar_width, label="9月14日")
  27. plt.bar(day_03, b_16, width=bar_width, label="9月14日")
  28. # 设置图例
  29. plt.legend(prop=font, loc='upper right')
  30. # 设置x轴的刻度
  31. plt.xticks(range(len(names)), names, fontproperties='SimHei', size=16, rotation=0)
  32. plt.title('电影票房多日统计对比', fontproperties='SimHei', size=20, rotation=0)
  33. plt.savefig('./票房对比.jpg')
  34. plt.show()

运行结果展示 :

2019101014531238.png

发表评论

表情:
评论列表 (有 0 条评论,151人围观)

还没有评论,来说两句吧...

相关阅读