例题

假设你知道了列表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]

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

如何绘制

代码+结果1.0

先绘制一组数据的条形图

# -*- coding: utf-8 -*-'''
@Time    : 2020/11/29 10:58
@Author  : yuhui
@Email   : 3476237164@qq.com
@FileName: matplotlib_9.py
@Software: PyCharm
'''"""11【matplotlib常用统计图】03绘制多次条形图""""""
假设你知道了列表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]
数据来源: http://www.cbooo.cn/movieday"""from matplotlib import pyplot as plt# 解决中文乱码
plt.rcParams["font.sans-serif"]=["KaiTi"]
plt.rcParams["font.family"]="sans-serif"
# 解决符号无法显示的问题
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像时负号'-'显示为方块的问题"""设置图形大小和图片品质"""
fig=plt.figure(figsize=(16,9),dpi=100,
)"""绘制横着的条形图"""a = ["猩球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
b_16 = [15746,312,4497,319]
b_15 = [12357,156,2045,168]
b_14 = [2358,399,2358,362]# 在一个画布上绘制出多个条形图
# 多次使用plt.barh()方法# 先绘制一组数据的条形图
plt.barh(range(len(a)),b_14,height=0.4,
color=["#98FB98","#8FBC8F","#32CD32"],)plt.show()


再绘制出其他两组的条形图

# -*- coding: utf-8 -*-'''
@Time    : 2020/11/29 10:58
@Author  : yuhui
@Email   : 3476237164@qq.com
@FileName: matplotlib_9.py
@Software: PyCharm
'''"""11【matplotlib常用统计图】03绘制多次条形图""""""
假设你知道了列表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]
数据来源: http://www.cbooo.cn/movieday"""from matplotlib import pyplot as plt# 解决中文乱码
plt.rcParams["font.sans-serif"]=["KaiTi"]
plt.rcParams["font.family"]="sans-serif"
# 解决符号无法显示的问题
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像时负号'-'显示为方块的问题"""设置图形大小和图片品质"""
fig=plt.figure(figsize=(16,9),dpi=100,
)"""绘制横着的条形图"""a = ["猩球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
b_16 = [15746,312,4497,319]
b_15 = [12357,156,2045,168]
b_14 = [2358,399,2358,362]# 在一个画布上绘制出多个条形图
# 多次使用plt.barh()方法# 由于height=0.3这个数值被经常用到,所以我们定义一个变量专门存储这个数据,在修改的时候也比较方便一些
barh_height=0.3# 先绘制一组数据的条形图
plt.barh(range(len(a)),b_14,height=barh_height,
color="#98FB98",)"""再绘制出其他两组数据的条形图"""
# 注意设置好y轴上的偏移量,否则,条形图在y轴上的位置一样,条形图会发生重合现象
y_14=list(range(len(a)))  # b_14数据对应的条形图在y轴上的位置
y_15=[i+barh_height for i in y_14]  # b_15数据对应的条形图在y轴上的位置
y_16=[i+barh_height*2 for i in y_14]  # b_16数据对应的条形图在y轴上的位置plt.barh(y_15,b_15,
height=barh_height,
color="#FF4500",)plt.barh(y_16,b_16,height=barh_height,color="#00BFFF",)plt.show()

设置y轴的刻度字符

效果图

如何实现

"""设置y轴刻度
三组数据对应着一部电影的名字
大致类似于
=========================
a       b       c电影的名字
=========================
"""
plt.yticks(
y_15,  # 为什么是y_15,因为它处于三组数据的中间,我们想要让电影的名字在三个条形图的中间显示出来
a,  # 内容
)

添加图例

每一种颜色代表的是哪一组的数据


添加网格线

"""绘制网格线"""
plt.grid(linestyle=":",  # 线型color="#6495ED",  # 颜色  CornflowerBlue   矢车菊的蓝色  #6495ED 100,149,237alpha=0.4,  # 透明度
)

条形图的更多应用场景

  • 数量统计
  • 频率统计(市场饱和度)

总结

  • 在一个画布上绘制出多个条形图

    • 需要多次使用plt.barh()方法
  • 注意:要设置好y轴方向上的偏移量,否则数据对应的条形图可能会发生重叠
    • 既不能太小,也不能太大
    • 太小:这一组条形图内部可能会发生图的重叠
    • 太大:这一组条形图与相邻组的条形图也会发生重叠
    • 一般偏移量,我们常常设置为条形图中每一条的宽度,所以,这也就意味着:条宽要设置好
  • 设置y轴的刻度,使得这一组条形图对应着一组大的名字
"""设置y轴刻度
三组数据对应着一部电影的名字
大致类似于
=========================
a       b       c电影的名字
=========================
"""
plt.yticks(
y_15,  # 为什么是y_15,因为它处于三组数据的中间,我们想要让电影的名字在三个条形图的中间显示出来
a,  # 内容
)
  • 条形图的更多应用场景

    • 数量统计
    • 频率统计(市场饱和度)

代码+结果

# -*- coding: utf-8 -*-'''
@Time    : 2020/11/29 10:58
@Author  : yuhui
@Email   : 3476237164@qq.com
@FileName: matplotlib_9.py
@Software: PyCharm
'''"""11【matplotlib常用统计图】03绘制多次条形图""""""
假设你知道了列表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]
数据来源: http://www.cbooo.cn/movieday"""from matplotlib import pyplot as plt# 解决中文乱码
plt.rcParams["font.sans-serif"]=["KaiTi"]
plt.rcParams["font.family"]="sans-serif"
# 解决符号无法显示的问题
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像时负号'-'显示为方块的问题"""设置图形大小和图片品质"""
fig=plt.figure(figsize=(16,9),dpi=100,
)"""绘制横着的条形图"""a = ["猩球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
b_16 = [15746,312,4497,319]
b_15 = [12357,156,2045,168]
b_14 = [2358,399,2358,362]# 在一个画布上绘制出多个条形图
# 多次使用plt.barh()方法# 由于height=0.3这个数值被经常用到,所以我们定义一个变量专门存储这个数据,在修改的时候也比较方便一些
barh_height=0.3# 先绘制一组数据的条形图
plt.barh(range(len(a)),b_14,height=barh_height,
color="#98FB98",label="9月14日",)"""再绘制出其他两组数据的条形图"""
# 注意设置好y轴上的偏移量,否则,条形图在y轴上的位置一样,条形图会发生重合现象
y_14=list(range(len(a)))  # b_14数据对应的条形图在y轴上的位置
y_15=[i+barh_height for i in y_14]  # b_15数据对应的条形图在y轴上的位置
y_16=[i+barh_height*2 for i in y_14]  # b_16数据对应的条形图在y轴上的位置plt.barh(y_15,b_15,
height=barh_height,
color="#FF4500",
label="9月15日",)plt.barh(y_16,b_16,height=barh_height,color="#00BFFF",
label="9月16日",)"""设置y轴刻度
三组数据对应着一部电影的名字
大致类似于
=========================
a       b       c电影的名字
=========================
"""
plt.yticks(
y_15,  # 为什么是y_15,因为它处于三组数据的中间,我们想要让电影的名字在三个条形图的中间显示出来
a,  # 内容
)"""添加图例"""
plt.legend(loc="best")"""绘制网格线"""
plt.grid(linestyle=":",  # 线型color="#6495ED",  # 颜色  CornflowerBlue   矢车菊的蓝色  #6495ED 100,149,237alpha=0.4,  # 透明度
)plt.show()

11【matplotlib常用统计图】03绘制多次条形图相关推荐

  1. 数据分析 第三讲 matplotlib常用统计图

    文章目录 数据分析第三讲 matplotlib常用统计图 1.绘制散点图 2.绘制条形图 3.绘制直方图 4.绘制饼图 5. 绘制3D立体图形 5.1 3D曲线 5.2 3D散点图 5.3 3D平面图 ...

  2. 10【matplotlib常用统计图】02绘制条形图

    案例 假设你获取到了2017年内地电影票房前20的电影(列表a)和电影票房数据(列表b),那么如何更加直观的展示该数据? a = ["战狼2","速度与激情8" ...

  3. 人工智能学习笔记03——matplotlib常用统计图

    绘制散点图 1 假设通过爬虫,获取到西安2019年3月份和10月份每天白天的最高的气温,分别是列表a和列表b,那么此时如何寻找气温随时间变换的某种规律? a = [12,7,13,13,17,17,1 ...

  4. 数据科学库(HM)(Day2)——matplotlib常用统计图

    绘制散点图 from matplotlib import pyplot as plt from matplotlib import font_manager plt.rcParams['font.sa ...

  5. python如何绘制条形图_python Matplotlib 系列教程(三)——绘制直方图和条形图

    在本章节我们将学习如何绘制条形图和直方图 条形图与直方图的区别: 首先,条形图是用条形的长度表示各类别频数的多少,其宽度(表示类别)则是固定的: 直方图是用面积表示各组频数的多少,矩形的高度表示每一组 ...

  6. Python数据分析 2.Matplotlib绘图—常用统计图

    Python数据分析 2.Matplotlib绘图-常用统计图 1.绘制散点图 from matplotlib import pyplot as plt from matplotlib import ...

  7. 【数据分析与挖掘】数据分析学习及实践记录 | part 03-matplotlib常用统计图

    开新坑啦!之前都是晚上七点以后开始学习,今天上午把matplotlib中文显示的问题解决,就开始刷课了.第三部分开启. 老规矩,先上图 01绘制散点图 开篇老师上手一个一周天气的练习. 我跟着标注的数 ...

  8. matplotlib 常用图形绘制与官方文档

    matplotlib 常用图形绘制与官方文档 matplotlib.org Python库matplotlib 图形绘制 官方教程目录 matplotlib.pyplot matplotlib.pyp ...

  9. 绘制多个折线图_学习笔记第一页 | 常用统计图绘制及描述规范

    一次学习,一次成长!!! 假期参加了狗熊会的一个基础课程(后文简称"课程"),学习了怎么绘制规范的图,怎么写出规范的数据分析报告.蹭着空闲,简单整理本次学习的感受及干货笔记.Tru ...

  10. 生信常用分析图形绘制03 -- 富集分析圈图

    有了R语言的基础,以及ggplot2绘图基础,我们的生信常用分析图形的绘制就可以提上日程了!本系列,师兄就开始带着大家一起学习如何用R语言绘制我们自己的各种分析图吧! 由于本系列的所有分析代码均为师兄 ...

最新文章

  1. 实战:掌握PyTorch图片分类的简明教程 | 附完整代码
  2. Kafka manager安装 (支持0.10以后版本consumer)
  3. Java的Web项目使用DWR简单配置说明
  4. yolov5和yolov5-face nms比较
  5. 跨链(8)跨链双雄Cosmos“系统框架”
  6. 一篇教你xftp连接阿里云轻量级应用服务器。超级详细,避免踩坑
  7. 前端感官性能的衡量和优化实践
  8. java_web学习(六) request对象中的get和post差异
  9. 时间的几种格式以及它们之间的相互转换 (js)
  10. Juniper 210 密码清不掉_iPhone 11 每次下载应用都需要输入密码怎么办?
  11. Java调用WebService接口
  12. 基于SSM实现台球厅计时收费系统
  13. 图像检索:基于内容的图像检索技术
  14. html网页设计作品文字,40个以大文字排版的网页设计作品
  15. 不同激光粒度仪测试结果不一致的深层原因分析
  16. vue项目富文本编辑器输入格式化以计算总字数
  17. 【影音制作】编辑视频
  18. linux 回收站创建
  19. 教您正确选择一款合适您的家用路由器
  20. Docker之MySQL主从连接提示:Communications link failure

热门文章

  1. 【PS】怎么让一张模糊图片更清晰?
  2. w10计算机用户名密码忘了,一招简单帮你解决win10系统电脑忘记开机密码
  3. android expandablerecycle 动画,Android Expandable RecyclerView不同卡高
  4. 如何同时对多个 Word 文档批量插入页眉页脚、修改页眉页脚以及添加页码
  5. 计算机组成原理(第三版)唐朔飞-第四章存储器-课后习题
  6. Separating set
  7. (十三)中介者模式详解(玄幻版) - 转
  8. 深度| 百度副总裁王海峰:百度在NLP领域都做了什么?
  9. 技术美术知识学习4200:SSAO算法
  10. 浏览器 - 监听浏览器刷新及关闭