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 相关文章推荐
python3访问sina首页中文的处理方法
Feb 24 Python
python使用百度翻译进行中翻英示例
Apr 14 Python
python实现模拟按键,自动翻页看u17漫画
Mar 17 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
Aug 31 Python
django Serializer序列化使用方法详解
Oct 16 Python
Python实现深度遍历和广度遍历的方法
Jan 22 Python
python3对接mysql数据库实例详解
Apr 30 Python
Python3网络爬虫中的requests高级用法详解
Jun 18 Python
Python实现动态给类和对象添加属性和方法操作示例
Feb 29 Python
python和php哪个容易学
Jun 19 Python
Python eval函数原理及用法解析
Nov 14 Python
解决import tensorflow导致jupyter内核死亡的问题
Feb 06 Python
python基础之模块的导入
python基础之文件操作
python基础之错误和异常处理
Python中递归以及递归遍历目录详解
Oct 24 #Python
python基础之函数的定义和调用
python 标准库原理与用法详解之os.path篇
Oct 24 #Python
Python干货实战之八音符酱小游戏全过程详解
You might like
PHP 和 XML: 使用expat函数(二)
2006/10/09 PHP
Mysql的GROUP_CONCAT()函数使用方法
2008/03/28 PHP
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
2011/11/07 PHP
PHP版网站缓存加快打开速度的方法分享
2012/06/03 PHP
php计算当前程序执行时间示例
2014/04/24 PHP
php实现专业获取网站SEO信息类实例
2015/04/02 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
js style动态设置table高度
2014/10/21 Javascript
JS实现的4种数字千位符格式化方法分享
2015/03/02 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
jQuery遍历页面所有CheckBox查看是否被选中的方法
2015/04/14 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
javascript拖拽效果延伸学习
2016/04/04 Javascript
最好用的Bootstrap fileinput.js文件上传组件
2016/12/12 Javascript
详解通过JSON数据使用VUE.JS
2017/05/26 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
JS处理一些简单计算题
2018/02/24 Javascript
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
nodejs更新package.json中的dependencies依赖到最新版本的方法
2018/10/10 NodeJs
深入了解JavaScript 私有化
2019/05/30 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
跟老齐学Python之用while来循环
2014/10/02 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
2019/06/08 Python
Python中内建模块collections如何使用
2020/05/27 Python
Python中使用aiohttp模拟服务器出现错误问题及解决方法
2020/10/31 Python
浅析Python模块之间的相互引用问题
2021/02/26 Python
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
详解HTML5中ol标签的用法
2015/09/08 HTML / CSS
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
护士工作失误检讨书
2014/09/14 职场文书
世界红十字日活动总结
2015/02/10 职场文书
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python