Python Matplotlib绘制条形图的全过程


Posted in Python onOctober 24, 2021

条形图

条形图具有丰富的表现形式,常见的类型包括单组条形图,多组条形图,堆积条形图和对称条形图等。

单组条形图

条形图的每种表现形式都可以绘制成垂直条形图或水平条形图,以单组条形图的两种绘制方式为例。

垂直条形图

import matplotlib.pyplot as plt
data = [10., 20., 5., 15.]
plt.bar(range(len(data)), data)
plt.show()

Python Matplotlib绘制条形图的全过程

Tips:plt.plot()函数的作用是:接收两个参数,包括每个条形的x坐标和每个条行的高度。

通过可选参数width,pyplot.bar()提供了一种控制条形图中条状宽度的方法:

import matplotlib.pyplot as plt
data = [10., 20., 5., 15.]
plt.bar(range(len(data)), data, width=0.5)
plt.show()

Python Matplotlib绘制条形图的全过程

水平条形图

如果更喜欢水平条形外观,就可以使用plt.barh()函数,在用法方面与plt.bar()基本相同,但是修改条形宽度(或者在水平条形图中应该称为高度)的参数需要使用height:

import matplotlib.pyplot as plt
data = [10., 20., 5., 15.]
plt.barh(range(len(data)), data, height=0.5)
plt.show()

Python Matplotlib绘制条形图的全过程

多组条形图

当需要比较不同年份相应季度的销量等此类需求时,我们可能需要多组条形图。

import numpy as np
import matplotlib.pyplot as plt
data = [[10., 20., 30., 20.],[40., 25., 53., 18.],[6., 22., 52., 19.]]
x = np.arange(4)
plt.bar(x + 0.00, data[0], color = 'b', width = 0.25)
plt.bar(x + 0.25, data[1], color = 'g', width = 0.25)
plt.bar(x + 0.50, data[2], color = 'r', width = 0.25)
plt.show()

Python Matplotlib绘制条形图的全过程

堆积条形图

通过使用plt.bar()函数中的可选参数,可以绘制堆积条形图。

import matplotlib.pyplot as plt
y_1 = [3., 25., 45., 22.]
y_2 = [6., 25., 50., 25.]
x = range(4)
plt.bar(x, y_1, color = 'b')
plt.bar(x, y_2, color = 'r', bottom = y_1)
plt.show()

Python Matplotlib绘制条形图的全过程

Tips:plt.bar()函数的可选参数bottom允许指定条形图的起始值。

可以结合for循环,利用延迟呈现机制堆叠更多的条形:

import numpy as np
import matplotlib.pyplot as plt
data = np.array([[5., 30., 45., 22.], [5., 25., 50., 20.], [1., 2., 1., 1.]])
x = np.arange(data.shape[1])
for i in range(data.shape[0]):
    plt.bar(x, data[i], bottom = np.sum(data[:i], axis = 0))
plt.show()

Python Matplotlib绘制条形图的全过程

对称条形图

一个简单且有用的技巧是对称绘制两个条形图。例如想要绘制不同年龄段的男性与女性数量的对比:

import numpy as np
import matplotlib.pyplot as plt
w_pop = np.array([5., 30., 45., 22.])
m_pop = np.array( [5., 25., 50., 20.])
x = np.arange(4)
plt.barh(x, w_pop)
plt.barh(x, -m_pop)
plt.show()

Python Matplotlib绘制条形图的全过程

图中女性人口的条形图照常绘制。然而,男性人口的条形图的条形图的条形图向左延伸,而不是向右延伸。可以使用数据的负值来快速实现对称条形图的绘制。

总结

到此这篇关于Python Matplotlib绘制条形图的文章就介绍到这了,更多相关Python Matplotlib绘制条形图内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中pycurl库的用法实例
Sep 30 Python
Python连接mysql数据库的正确姿势
Feb 03 Python
Python实现运行其他程序的四种方式实例分析
Aug 17 Python
Python实现的堆排序算法示例
Apr 29 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
Jan 07 Python
学python安装的软件总结
Oct 12 Python
使用Python进行中文繁简转换的实现代码
Oct 18 Python
Python 通过正则表达式快速获取电影的下载地址
Aug 17 Python
Python如何在bool函数中取值
Sep 21 Python
Python Charles抓包配置实现流程图解
Sep 29 Python
OpenCV灰度化之后图片为绿色的解决
Dec 01 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
Feb 07 Python
python基础之模块的导入
python基础之文件操作
python基础之错误和异常处理
Python中递归以及递归遍历目录详解
Oct 24 #Python
python基础之函数的定义和调用
python 标准库原理与用法详解之os.path篇
Oct 24 #Python
Python干货实战之八音符酱小游戏全过程详解
You might like
PHP面向对象的使用教程 简单数据库连接
2006/11/25 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
2014/01/22 PHP
简单谈谈php浮点数精确运算
2016/03/10 PHP
PHP仿微信多图片预览上传实例代码
2016/09/13 PHP
Javascript 两个窗体之间传值实现代码
2009/09/25 Javascript
jquery实现图片滚动效果的简单实例
2013/11/23 Javascript
JS根据年月获得当月天数的实现代码
2014/07/03 Javascript
Javascript变量的作用域和作用域链详解
2015/04/02 Javascript
微信小程序 轮播图swiper详解及实例(源码下载)
2017/01/11 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
2018/11/13 Javascript
详解JS实现简单的时分秒倒计时代码
2019/04/25 Javascript
layui实现数据表格table分页功能(ajax异步)
2019/07/27 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
2020/03/04 Javascript
Javascript中Math.max和Math.max.apply的区别和用法详解
2020/08/24 Javascript
js在HTML的三种引用方式详解
2020/08/29 Javascript
[50:20]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第四局
2016/03/06 DOTA
python和c语言的主要区别总结
2019/07/07 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
使用Pyhton集合set()实现成果查漏的例子
2019/11/24 Python
python多进程并发demo实例解析
2019/12/13 Python
python对象销毁实例(垃圾回收)
2020/01/16 Python
python将音频进行变速的操作方法
2020/04/08 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
2020/04/21 Python
pytorch中index_select()的用法详解
2021/01/06 Python
英国现代市场:ARKET
2019/04/10 全球购物
师范毕业生个人求职信
2013/12/09 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
四风问题民主生活会对照检查材料思想汇报
2014/09/27 职场文书
2014年财务人员工作总结
2014/11/11 职场文书
人民币符号
2022/02/17 杂记
Python基本的内置数据类型及使用方法
2022/04/13 Python