python matplotlib库绘制条形图练习题


Posted in Python onAugust 10, 2019

练习一:假设你获取到了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()

效果图

python matplotlib库绘制条形图练习题

练习二:假设知道了列表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()

效果图

python matplotlib库绘制条形图练习题

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 七种邮件内容发送方法实例
Apr 22 Python
Python标准库与第三方库详解
Jul 22 Python
python批量修改文件名的实现代码
Sep 01 Python
Python实现微信公众平台自定义菜单实例
Mar 20 Python
python使用Matplotlib绘制分段函数
Sep 25 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
Dec 26 Python
Python内置random模块生成随机数的方法
May 31 Python
python脚本开机自启的实现方法
Jun 28 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
Jan 02 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
Mar 12 Python
python爬虫beautifulsoup解析html方法
Dec 07 Python
Python之qq自动发消息的示例代码
Feb 18 Python
Python OpenCV实现鼠标画框效果
Aug 19 #Python
python opencv鼠标事件实现画框圈定目标获取坐标信息
Apr 18 #Python
python点击鼠标获取坐标(Graphics)
Aug 10 #Python
python matplotlib库直方图绘制详解
Aug 10 #Python
python字典的遍历3种方法详解
Aug 10 #Python
python命名空间(namespace)简单介绍
Aug 10 #Python
简单介绍python封装的基本知识
Aug 10 #Python
You might like
cache_lite试用
2007/02/14 PHP
php知道与问问的采集插件代码
2010/10/12 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
2012/07/01 PHP
php实现TCP端口检测的方法
2015/04/01 PHP
PHP+swoole实现简单多人在线聊天群发
2016/01/19 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
设定php简写功能的方法
2019/11/28 PHP
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
window.open关于浏览器拦截问题分析及解决方法
2013/02/05 Javascript
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
JQuery 常用方法和事件详细介绍
2013/04/18 Javascript
JavaScript获取当前页面上的指定对象示例代码
2014/02/28 Javascript
javascript记录文本框内文字个数检测文字个数变化
2014/10/14 Javascript
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
JS 面向对象之继承---多种组合继承详解
2016/07/10 Javascript
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
2016/10/10 Javascript
js表单登陆验证示例
2016/10/19 Javascript
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
js脚本编写简单刷票投票系统
2017/06/27 Javascript
详解Python中的循环语句的用法
2015/04/09 Python
基于Python3.6+splinter实现自动抢火车票
2018/09/25 Python
详解pandas删除缺失数据(pd.dropna()方法)
2019/06/25 Python
深入浅析python的第三方库pandas
2020/02/13 Python
解决import tensorflow as tf 出错的原因
2020/04/16 Python
QML实现钟表效果
2020/06/02 Python
CSS3实现王者荣耀匹配人员加载页面的方法
2019/04/16 HTML / CSS
委托书的格式
2014/08/01 职场文书
2014报到证办理个人委托书
2014/10/08 职场文书
关于运动会的广播稿50字
2014/10/17 职场文书
2015小学师德工作总结
2015/07/21 职场文书
创业计划书之少年玩具店
2019/09/05 职场文书
在K8s上部署Redis集群的方法步骤
2021/04/27 Redis
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript
前端JavaScript大管家 package.json
2021/11/02 Javascript
Java 异步任务计算FutureTask
2022/04/28 Java/Android
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL