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 相关文章推荐
浅谈scrapy 的基本命令介绍
Jun 13 Python
Python简单实现两个任意字符串乘积的方法示例
Apr 12 Python
Python中XlsxWriter模块简介与用法分析
Apr 24 Python
利用pyinstaller将py文件打包为exe的方法
May 14 Python
Python 找到列表中满足某些条件的元素方法
Jun 26 Python
对django中render()与render_to_response()的区别详解
Oct 16 Python
Python批量删除只保留最近几天table的代码实例
Apr 01 Python
pandas数据筛选和csv操作的实现方法
Jul 02 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
Dec 04 Python
python mysql中in参数化说明
Jun 05 Python
Python图像处理库PIL详细使用说明
Apr 06 Python
python基础之模块的导入
python基础之文件操作
python基础之错误和异常处理
Python中递归以及递归遍历目录详解
Oct 24 #Python
python基础之函数的定义和调用
python 标准库原理与用法详解之os.path篇
Oct 24 #Python
Python干货实战之八音符酱小游戏全过程详解
You might like
使用PHP实现Mysql读写分离
2013/06/28 PHP
php中fsockopen用法实例
2015/01/05 PHP
PHP SPL标准库之SplFixedArray使用实例
2015/05/12 PHP
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
2013/06/09 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
jquery任意位置浮动固定层插件用法实例
2015/05/29 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
2015/08/03 Javascript
js实现索引图片切换效果
2015/11/21 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
javascript中Date对象应用之简易日历实现
2016/07/12 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
jQuery 禁止表单用户名、密码自动填充功能
2017/10/30 jQuery
[00:57]辉夜杯战队访谈宣传片—VG
2015/12/25 DOTA
python编写暴力破解FTP密码小工具
2014/11/19 Python
研究Python的ORM框架中的SQLAlchemy库的映射关系
2015/04/25 Python
Python通过future处理并发问题
2017/10/17 Python
PowerBI和Python关于数据分析的对比
2019/07/11 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
德国传统玻璃制造商:Cristalica
2018/04/23 全球购物
植村秀加拿大官网:Shu Uemura加拿大
2019/09/03 全球购物
大学生军训感想
2014/02/16 职场文书
运动会通讯稿200字
2014/02/16 职场文书
土地转让协议书范本
2014/04/15 职场文书
餐饮周年庆活动方案
2014/08/14 职场文书
医院科室评语
2015/01/04 职场文书
2015高考寄语集锦
2015/02/27 职场文书
幼儿园亲子活动通知
2015/04/24 职场文书
党支部评议意见
2015/06/02 职场文书
文明上网主题班会
2015/08/14 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书
python用字节处理文件实例讲解
2021/04/13 Python
Python Django搭建文件下载服务器的实现
2021/05/10 Python