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实现的简单文本类游戏实例
Apr 28 Python
python函数形参用法实例分析
Aug 04 Python
python UNIX_TIMESTAMP时间处理方法分析
Apr 18 Python
编写Python爬虫抓取暴走漫画上gif图片的实例分享
Apr 20 Python
使用Python将数组的元素导出到变量中(unpacking)
Oct 27 Python
Python基于plotly模块实现的画图操作示例
Jan 23 Python
Python 用matplotlib画以时间日期为x轴的图像
Aug 06 Python
Python利用全连接神经网络求解MNIST问题详解
Jan 14 Python
在PyCharm中实现添加快捷模块
Feb 12 Python
简单了解python shutil模块原理及使用方法
Apr 28 Python
Keras 在fit_generator训练方式中加入图像random_crop操作
Jul 03 Python
深入理解Pytorch微调torchvision模型
Nov 11 Python
python基础之模块的导入
python基础之文件操作
python基础之错误和异常处理
Python中递归以及递归遍历目录详解
Oct 24 #Python
python基础之函数的定义和调用
python 标准库原理与用法详解之os.path篇
Oct 24 #Python
Python干货实战之八音符酱小游戏全过程详解
You might like
PHP 命令行参数详解及应用
2011/05/18 PHP
php中error与exception的区别及应用
2014/07/28 PHP
php字符串分割函数用法实例
2015/03/17 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
2020/01/26 PHP
基于PHP的登录和注册的功能的实现
2020/08/06 PHP
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
js unicode 编码解析关于数据转换为中文的两种方法
2014/04/21 Javascript
Node.js编码规范
2014/07/14 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
2016/07/04 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
JavaScript实现左侧菜单效果
2017/12/14 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
2018/09/14 Javascript
微信小程序拍照和摄像功能实现方法示例
2019/02/01 Javascript
详解使用React.memo()来优化函数组件的性能
2019/03/19 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
微信小程序点击view动态添加样式过程解析
2020/01/21 Javascript
编写Python脚本来获取Google搜索结果的示例
2015/05/04 Python
python 循环遍历字典元素的简单方法
2016/09/11 Python
Python设计模式之观察者模式简单示例
2018/01/10 Python
python3实现爬取淘宝美食代码分享
2018/09/23 Python
解决Python 使用h5py加载文件,看不到keys()的问题
2019/02/08 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
Python切片列表字符串如何实现切换
2020/08/06 Python
python爬虫多次请求超时的几种重试方法(6种)
2020/12/01 Python
详解CSS3的perspective属性设置3D变换距离的方法
2016/05/23 HTML / CSS
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
美国按摩椅批发网站:Titan Chair
2018/12/27 全球购物
超市营业员岗位职责
2013/12/20 职场文书
房屋租赁意向书
2014/04/01 职场文书
教师年度考核评语
2014/04/28 职场文书
股份合作协议书
2014/09/10 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
2014年组织部工作总结
2014/11/14 职场文书
CPU不支持Windows11系统怎么办
2021/11/21 数码科技