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中os操作文件及文件路径实例汇总
Jan 15 Python
python使用fileinput模块实现逐行读取文件的方法
Apr 29 Python
Python实现telnet服务器的方法
Jul 10 Python
Python3利用Dlib19.7实现摄像头人脸识别的方法
May 11 Python
python计算两个地址之间的距离方法
Jun 09 Python
python numpy元素的区间查找方法
Nov 14 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
Jan 08 Python
Python代理IP爬虫的新手使用教程
Sep 05 Python
numpy按列连接两个维数不同的数组方式
Dec 06 Python
Django中密码的加密、验密、解密操作
Dec 19 Python
python与mysql数据库交互的实现
Jan 06 Python
Python爬虫基础之初次使用scrapy爬虫实例
Jun 26 Python
python基础之模块的导入
python基础之文件操作
python基础之错误和异常处理
Python中递归以及递归遍历目录详解
Oct 24 #Python
python基础之函数的定义和调用
python 标准库原理与用法详解之os.path篇
Oct 24 #Python
Python干货实战之八音符酱小游戏全过程详解
You might like
php 来访国内外IP判断代码并实现页面跳转
2009/12/18 PHP
PHP安全技术之 实现php基本安全
2010/09/04 PHP
php替换超长文本中的特殊字符的函数代码
2012/05/22 PHP
PHP base64编码后解码乱码的解决办法
2014/06/19 PHP
php中rename函数用法分析
2014/11/15 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
laravel学习教程之关联模型
2016/07/30 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
了解一点js的Eval函数
2012/07/26 Javascript
jQuery插件zepto.js简单实现tab切换
2015/06/16 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
深入解析nodejs HTTP服务
2017/07/25 NodeJs
详解从react转职到vue开发的项目准备
2019/01/14 Javascript
Vue.js构建你的第一个包并在NPM上发布的方法步骤
2019/05/01 Javascript
小程序使用分包的示例代码
2020/03/23 Javascript
JS如何在不同平台实现多语言方式
2020/07/16 Javascript
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
2020/12/02 Vue.js
python监控网卡流量并使用graphite绘图的示例
2014/04/27 Python
python实现二分查找算法
2017/09/21 Python
Python实现的直接插入排序算法示例
2018/04/29 Python
使用PyCharm创建Django项目及基本配置详解
2018/10/24 Python
python保存字典和读取字典的实例代码
2019/07/07 Python
TensorFlow 多元函数的极值实例
2020/02/10 Python
html5 canvas绘制网络字体的常用方法
2019/08/26 HTML / CSS
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
优秀经理获奖感言
2014/03/04 职场文书
个人贷款承诺书
2014/03/28 职场文书
建筑院校毕业生求职信
2014/06/13 职场文书
2014年图书馆工作总结
2014/11/25 职场文书
导游经典开场白——导游词
2019/04/17 职场文书
假如给我三天光明:舟逆水而行,人遇挫而达 
2019/10/29 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server
windows10 家庭版下FTP服务器搭建教程
2022/08/05 Servers
使用JS前端技术实现静态图片局部流动效果
2022/08/05 Javascript