问题1: 假设你获取到了2017年内地电影票房前20的电影(列表a)和电影票房数据(列表b),那么如何更加直观的展示该数据?

数据来源:http://58921.com/alltime/2017
数据如下:a -->电影名称
a = [“战狼2”,“速度与激情8”,“功夫瑜伽”,“西游伏妖篇”,“变形金刚5:最后的骑士”,“摔跤吧!爸爸”,“加勒比海盗5:死无对证”,“金刚:骷髅岛”,“极限特工:终极回归”,“生化危机6:终章”,“乘风破浪”,“神偷奶爸3”,“智取威虎山”,“大闹天竺”,“金刚狼3:殊死一战”,“蜘蛛侠:英雄归来”,“悟空传”,“银河护卫队2”,“情圣”,“新木乃伊”,]
b --> 电影票房,单位亿元:
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]

# -*- coding: utf-8 -*-
#画图先导入对应的包以及设定中文字体
from matplotlib import pyplot as plt
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname='\Windows\Fonts\msyhl.ttc')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 = (16,6),dpi=60)
#绘制条形图 - 使用bar
plt.bar(x,y)

#调整颜色,以及图形宽度
plt.bar(x,y,color = 'Teal',width = 0.5)
#调整X轴的中文字体,考虑到电影名称比较长,将文字旋转90度
plt.xticks(x,fontproperties=my_font,rotation=90)

#通过barh将条形图横向展示,此时宽度设定使用 height
plt.figure(figsize = (16,10),dpi=80) #由于图形横向展示,可以调整高度
plt.barh(x,y,color = 'Navy',height = 0.5)
plt.yticks(x,fontproperties=my_font)
plt.grid(alpha=0.3) #添加背景网格线,调整透明度为0.3
plt.title('各电影票房查看',fontproperties = my_font)
plt.xlabel('电影票房,单位:亿',fontproperties = my_font)

问题2: 假设你知道了列表a中电影分别在2017-09-14(b_14), 2017-09-15(b_15), 2017-09-16(b_16)三天的票房,为了展示列表中电影本身的票房以及同其他电影的数据对比情况,应该如何更加直观的呈现该数据?

数据来源:www.cbooo.cn/movieday

from matplotlib import pyplot as plt
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname='\Windows\Fonts\msyhl.ttc')
a = ["猩球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
b_16 = [15746,312,4497,319]
b_15 = [12357,156,2045,168]
b_14 = [2358,399,2358,362]
# 先绘制9月14日的电影表现
plt.bar(a,b_14) #暂时忽略X轴的中文乱码,后续会进行调整

如果要将15.16号的数据并列体现,需要将15和16号对应的X轴向右偏移条形图的宽度即可

#调整图形大小
plt.figure(figsize=(16,8))
#设定条形图宽度
bar_width=0.3
#分别设定14,15,16三天对应的X轴
x_14 = range(len(a)) #14号就是列表a中元素的个数[0,1,2,3]
x_15 = [i + bar_width for i in x_14] #15号,需要向右偏移1个宽度
x_16 = [i + bar_width*2 for i in x_14] #16号需要向右偏移2个宽度
#分别绘制图形,同时设定不同的颜色以及图例
plt.bar(x_14,b_14,width=bar_width,color='Teal',label='9月14日')
plt.bar(x_15,b_15,width=bar_width,color='orange',label='9月15日')
plt.bar(x_16,b_16,width=bar_width,color='Cyan',label='9月16日')

#调整X轴,因为15号为中间,所以可以直接对15号的X轴中文字体进行调整
plt.xticks(x_15,a,fontproperties = my_font)
#增加图例
plt.legend(prop=my_font)

#如果要求每一天的条形之间保留空隙,可以调整x_15和x_16对应的参数
plt.figure(figsize=(16,8),dpi=80)
bar_width=0.3
x_14 = range(len(a))
x_15 = [i + bar_width+0.02 for i in x_14]  #多留出0.02的宽度
x_16 = [i + bar_width*2+0.02*2 for i in x_14]
plt.bar(x_14,b_14,width=bar_width,color='Teal',label='9月14日')
plt.bar(x_15,b_15,width=bar_width,color='orange',label='9月15日')
plt.bar(x_16,b_16,width=bar_width,color='Cyan',label='9月16日')
plt.xticks(x_15,a,fontproperties = my_font)
plt.legend(prop=my_font)

#当然,也可以将每一天的数据一起显示,只是调整条形宽度
plt.figure(figsize=(16,8),dpi=80)
x_14 = range(len(a))
plt.bar(x_14,b_14,width=0.3,color='Teal',label='9月14日') #设定14号的数据条最宽
plt.bar(x_14,b_15,width=0.2,color='orange',label='9月15日') #逐次调整条形宽度
plt.bar(x_14,b_16,width=0.1,color='Cyan',label='9月16日')
plt.xticks(x_14,a,fontproperties = my_font)
plt.legend(prop=my_font)

总结:查看得知猩球崛起的票房在这3日内,不断提高,尤其在15号上涨明显
敦刻尔克和占良的票房并不突出

Python学习记录 - matplotlib绘制电影票房条形图相关推荐

  1. python做实时温度曲线图_Python学习记录 - matplotlib绘制温度变化折线图

    Python学习记录 - matplotlib绘制温度变化折线图 Python学习记录 - matplotlib绘制温度变化折线图 题目:列表a表示10点到12点每一分钟的气温,累计为2个小时,绘制折 ...

  2. python读取excel画散点图-python学习之matplotlib绘制散点图实例

    要绘制单个点,可使用函数scatter(),并向其传递一对x和y坐标,它将在指定位置绘制一个点: """使用scatter()绘制散点图""" ...

  3. python画散点图类型-python学习之matplotlib绘制散点图实例

    要绘制单个点,可使用函数scatter(),并向其传递一对x和y坐标,它将在指定位置绘制一个点: """使用scatter()绘制散点图""" ...

  4. python画散点图-python学习之matplotlib绘制散点图实例

    要绘制单个点,可使用函数scatter(),并向其传递一对x和y坐标,它将在指定位置绘制一个点: """使用scatter()绘制散点图""" ...

  5. 【python学习】-matplotlib绘制双坐标柱状图

    matplotlib绘制双坐标柱状图 单坐标柱状图绘制 双坐标柱状图绘制 图形美化 本文章记录双坐标柱状图的绘制过程 单坐标柱状图绘制 #来自官网的例子 import matplotlib.pyplo ...

  6. 【python学习】matplotlib绘制对数坐标图(保留原数值)

    matplotlib绘制对数坐标图 对数坐标图绘制 x轴采用对数坐标 y轴采用对数坐标 x,y轴均采用对数坐标 在科研生活中,有时遇到变量数值相差较大,绘制在图上看着不清晰也不美观,因此一般可以绘制对 ...

  7. 7月16日数据科学库学习笔记——matplotlib 绘制散点图、条形图、直方图

    文章目录 前言 一.绘制散点图 二.绘制条形图 1.纵向条形图 2.横向条形图 三.绘制分组条形图 四.绘制直方图 1.plt.hist 方法 2.plt.bar 方法绘制直方图 前言 本文为7月16 ...

  8. python学习之matplotlib绘制动图(FuncAnimation()参数)

    1.函数FuncAnimation(fig,func,frames,init_func,interval,blit)是绘制动图的主要函数,其参数如下: a.fig 绘制动图的画布名称 b.func自定 ...

  9. Python把matplotlib绘制的水平条形图(horizontal bar)转化为竖直的柱状图(vertical bar)实战

    Python把matplotlib绘制的水平条形图(horizontal bar)转化为竖直的柱状图(vertical bar)实战 目录

最新文章

  1. java8 wordcount_Spark2.x与Java8下WordCount示例
  2. windows 程序员电脑设置
  3. 装饰器模式与java.io包
  4. mysql行级锁 表级锁 页级锁详细介绍_MySQL行级锁、表级锁、页级锁详细介绍
  5. 2021牛客暑期多校训练营4 E - Tree Xor 线段树 + 拆分区间
  6. 关于jTopo的引用
  7. python识别节假日_Python3自动签到 定时任务 判断节假日的实例
  8. java代码审查工具_APP开发常用的一些工具包、软件工具
  9. 正则匹配指定单词后的所有数字_Python正则表达式理解用法
  10. 2021年青海高考一分一段成绩查询,最新2021年青海高考一分一段公布
  11. 第 6 章 工厂模式
  12. 震惊,杨幂的脸竟然出现在了她的身体上
  13. 理清网站数据分析思路导图
  14. linux驱动目录在哪里,详细讲解Linux驱动程序
  15. 修改centos7的MAC地址
  16. R语言数据分析笔记——方差分析(单因素方差分析、双因素方差分析、多因素方差分析)在Excel、SPSS、R语言中的操作)
  17. 用于遥感图像语义分割和单视图高度估计的编码器-双解码器IGARSS2019
  18. 中国计算机学会推荐国际学术会议和期刊目录(2019,最新)
  19. 内核编译出现Memory exhausted解决方案
  20. 一些简单的css,html,js笔记分享给大家,希望能够帮助到大家

热门文章

  1. javascript 原生
  2. FlyFish 2.0已发布,大屏开发应用更加灵活便捷
  3. bash破壳漏洞分析(一)
  4. Utopia unlimited: reassessing American literary utopias【翻译】
  5. 【直播活动】阿里巴巴开源大家族加入中科院开源之夏2022
  6. ‘python不是内部或外部命令’解决办法
  7. 从画面质量看国产3D网游的技术性崛起
  8. unity3d 人物对话_unity3d实现插件快速开发对话系统
  9. uniapp实现微信小程序支付功能
  10. 网页地址栏ico图标设置