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 05 Python
在Python中使用Neo4j数据库的教程
Apr 16 Python
Python3.2模拟实现webqq登录
Feb 15 Python
Python实现中文数字转换为阿拉伯数字的方法示例
May 26 Python
Python tkinter的grid布局及Text动态显示方法
Oct 11 Python
利用Python将数值型特征进行离散化操作的方法
Nov 06 Python
Python实现判断一个整数是否为回文数算法示例
Mar 02 Python
python多线程并发实例及其优化
Jun 27 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 Python
python绘制BA无标度网络示例代码
Nov 21 Python
基于jupyter代码无法在pycharm中运行的解决方法
Apr 21 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
May 24 Python
python基础之模块的导入
python基础之文件操作
python基础之错误和异常处理
Python中递归以及递归遍历目录详解
Oct 24 #Python
python基础之函数的定义和调用
python 标准库原理与用法详解之os.path篇
Oct 24 #Python
Python干货实战之八音符酱小游戏全过程详解
You might like
PHP提取字符串中的图片地址[正则表达式]
2011/11/12 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
2014/12/16 PHP
[原创]php实现子字符串位置相互对调互换的方法
2016/06/02 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
JavaScript学习笔记之JS函数
2015/01/22 Javascript
js+HTML5实现视频截图的方法
2015/06/16 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
2015/08/03 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
2016/04/14 Javascript
5个最顶级jQuery图表类库插件【jquery插件库】
2016/05/05 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
简单的js计算器实现
2016/10/26 Javascript
全面解析vue中的数据双向绑定
2017/05/10 Javascript
浅谈Angular6的服务和依赖注入
2018/06/27 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
Python基于TCP实现会聊天的小机器人功能示例
2018/04/09 Python
基于Python List的赋值方法
2018/06/23 Python
python实现一组典型数据格式转换
2018/12/15 Python
python实现手机销售管理系统
2019/03/19 Python
Python学习笔记之自定义函数用法详解
2019/06/08 Python
python实现数据清洗(缺失值与异常值处理)
2019/12/02 Python
Python 读取xml数据,cv2裁剪图片实例
2020/03/10 Python
Django模型中字段属性choice使用说明
2020/03/30 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
2020/05/26 Python
HTML5 Canvas实现文本对齐的方法总结
2016/03/24 HTML / CSS
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
Vertbaudet西班牙网上商店:婴儿服装、童装、母婴用品和儿童家具
2019/10/16 全球购物
老教师工作总结的自我评价
2013/09/27 职场文书
初一科学教学反思
2014/01/27 职场文书
企业党员一句话承诺
2014/05/30 职场文书
大学本科生职业生涯规划书范文
2014/09/14 职场文书
学校总务处领导干部个人对照检查材料思想汇报
2014/10/06 职场文书
社区敬老月活动总结
2015/05/07 职场文书