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的Flask框架来构建一个简单的数字商品支付解决方案
Mar 31 Python
python 环境变量和import模块导入方法(详解)
Jul 11 Python
python+selenium实现163邮箱自动登陆的方法
Dec 31 Python
django使用xlwt导出excel文件实例代码
Feb 06 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
Feb 08 Python
使用python爬取B站千万级数据
Jun 08 Python
python实现得到当前登录用户信息的方法
Jun 21 Python
python实现飞机大战小游戏
Nov 08 Python
python无序链表删除重复项的方法
Jan 17 Python
python实现对变位词的判断方法
Apr 05 Python
Python基础教程之输入输出和运算符
Jul 26 Python
方法汇总:Python 安装第三方库常用
Apr 26 Python
python基础之模块的导入
python基础之文件操作
python基础之错误和异常处理
Python中递归以及递归遍历目录详解
Oct 24 #Python
python基础之函数的定义和调用
python 标准库原理与用法详解之os.path篇
Oct 24 #Python
Python干货实战之八音符酱小游戏全过程详解
You might like
php引用和拷贝的区别知识点总结
2019/09/23 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
javascript中String类的subString()方法和slice()方法
2011/05/24 Javascript
JavaScript中函数声明优先于变量声明的实例分析
2012/03/01 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
谈谈关于JavaScript 中的 MVC 模式
2013/04/11 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
2014/08/05 Javascript
嵌入式iframe子页面与父页面js通信的方法
2015/01/20 Javascript
jQuery统计指定子元素数量的方法
2015/03/17 Javascript
js简单工厂模式用法实例
2015/06/30 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
2015/11/18 Javascript
js中获取jsp表单中radio类型的值简单实例
2016/08/15 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
2016/08/19 Javascript
微信小程序 表单Form实例详解(附源码)
2016/12/22 Javascript
BootStrap selectpicker后台动态绑定数据的方法
2017/07/28 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
说说Vuex的getters属性的具体用法
2019/04/15 Javascript
nodejs实现日志读取、日志查找及日志刷新的方法分析
2019/05/20 NodeJs
基于javascript实现碰撞检测
2020/03/12 Javascript
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python splitlines使用技巧
2008/09/06 Python
Python实现的数据结构与算法之队列详解
2015/04/22 Python
python 读写、创建 文件的方法(必看)
2016/09/12 Python
Python实现购物程序思路及代码
2017/07/24 Python
浅谈python jieba分词模块的基本用法
2017/11/09 Python
python3 实现口罩抽签的功能
2020/03/11 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
在Matplotlib图中插入LaTex公式实例
2020/04/17 Python
电大毕业生自我鉴定
2014/04/10 职场文书
nginx对http请求处理的各个阶段详析
2021/03/31 Servers
Python实现学生管理系统(面向对象版)
2021/06/24 Python
MySQL命令无法输入中文问题的解决方式
2021/08/30 MySQL
JAVA API 实用类 String详解
2021/10/05 Java/Android
【D4DJ】美少女DJ企划 动画将于明年冬季开播第2季
2022/04/11 日漫