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统计文件行数示例分享
Feb 21 Python
深入理解Python中各种方法的运作原理
Jun 15 Python
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
Jun 15 Python
Python实现将多个空格换为一个空格.md的方法
Dec 20 Python
Python实现使用request模块下载图片demo示例
May 24 Python
Python面向对象之继承和多态用法分析
Jun 08 Python
flask框架蓝图和子域名配置详解
Jan 25 Python
python与pycharm有何区别
Jul 01 Python
详解在Python中使用Torchmoji将文本转换为表情符号
Jul 27 Python
Pycharm常用快捷键总结及配置方法
Nov 14 Python
python中reload重载实例用法
Dec 15 Python
Python使用random模块实现掷骰子游戏的示例代码
Apr 29 Python
python基础之模块的导入
python基础之文件操作
python基础之错误和异常处理
Python中递归以及递归遍历目录详解
Oct 24 #Python
python基础之函数的定义和调用
python 标准库原理与用法详解之os.path篇
Oct 24 #Python
Python干货实战之八音符酱小游戏全过程详解
You might like
用PHP实现递归循环每一个目录
2010/08/08 PHP
php curl模拟post提交数据示例
2013/12/31 PHP
PHP 函数call_user_func和call_user_func_array用法详解
2014/03/02 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
smarty自定义函数用法示例
2016/05/20 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
2018/05/28 PHP
php实现表单提交上传文件功能
2018/05/28 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
控制打印时页眉角的代码
2007/02/08 Javascript
javascript String 的扩展方法集合
2008/06/01 Javascript
Javascript处理DOM元素事件实现代码
2012/05/23 Javascript
javascript实现日历控件(年月日关闭按钮)
2012/12/12 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
2015/02/02 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
浅谈layui 绑定form submit提交表单的注意事项
2019/10/25 Javascript
Nuxt页面级缓存的实现
2020/03/09 Javascript
Element Input输入框的使用方法
2020/07/26 Javascript
python实现保存网页到本地示例
2014/03/16 Python
Python导入txt数据到mysql的方法
2015/04/08 Python
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
详解Python安装scrapy的正确姿势
2018/06/26 Python
Python利用递归实现文件的复制方法
2018/10/27 Python
如何用Python制作微信好友个性签名词云图
2019/06/28 Python
PyQT5 emit 和 connect的用法详解
2019/12/13 Python
pycharm通过ssh连接远程服务器教程
2020/02/12 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
python是怎么被发明的
2020/06/15 Python
Python中BeautifulSoup通过查找Id获取元素信息
2020/12/07 Python
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
英国家庭珠宝商:T. H. Baker
2018/02/08 全球购物
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
电气工程及其自动化专业求职信
2014/06/23 职场文书
党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
资料员岗位职责
2015/02/10 职场文书
搞笑结婚保证书
2015/05/08 职场文书