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 set集合类型操作总结
Nov 07 Python
将Django框架和遗留的Web应用集成的方法
Jul 24 Python
Ubuntu 下 vim 搭建python 环境 配置
Jun 12 Python
Python进阶学习之特殊方法实例详析
Dec 01 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
Jul 12 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
Feb 13 Python
详解如何设置Python环境变量?
May 13 Python
利用python实现汉字转拼音的2种方法
Aug 12 Python
tensorflow转换ckpt为savermodel模型的实现
May 25 Python
TensorFlow Autodiff自动微分详解
Jul 06 Python
pyqt5实现井字棋的示例代码
Dec 07 Python
python 窃取摄像头照片的实现示例
Jan 08 Python
python基础之模块的导入
python基础之文件操作
python基础之错误和异常处理
Python中递归以及递归遍历目录详解
Oct 24 #Python
python基础之函数的定义和调用
python 标准库原理与用法详解之os.path篇
Oct 24 #Python
Python干货实战之八音符酱小游戏全过程详解
You might like
一些星际专用术语解释
2020/03/04 星际争霸
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
PHP个人网站架设连环讲(二)
2006/10/09 PHP
js电信网通双线自动选择技巧
2008/11/18 Javascript
简短几句 通俗解释javascript的闭包
2011/01/17 Javascript
javascript实现图片切换的幻灯片效果源代码
2012/12/12 Javascript
jquery入门必备的基本认识及实例(整理)
2013/06/24 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
javascript基本语法
2016/05/31 Javascript
JavaScrpt判断一个数是否是质数的实例代码
2017/06/11 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
Node错误处理笔记之挖坑系列教程
2018/06/05 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
Bootstrap实现模态框效果
2019/09/30 Javascript
vue 实现购物车总价计算
2019/11/06 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
[05:01]3.19DOTA2发布会 我们都是刀塔人
2014/03/25 DOTA
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
python生成随机图形验证码详解
2017/11/08 Python
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
2018/04/18 Python
python爬取淘宝商品销量信息
2018/11/16 Python
ActiveMQ:使用Python访问ActiveMQ的方法
2019/01/30 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
pandas 缺失值与空值处理的实现方法
2019/10/12 Python
Python安装whl文件过程图解
2020/02/18 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
国际贸易专业推荐信
2013/11/15 职场文书
公积金单位接收函
2014/01/11 职场文书
优秀管理者获奖感言
2014/02/17 职场文书
疾病捐款倡议书
2014/05/13 职场文书
合作协议书范文
2014/08/20 职场文书
运动员代表致辞
2015/07/29 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书
CocosCreator ScrollView优化系列之分帧加载
2021/04/14 Python
MySQL系列之一 MariaDB-server安装
2021/07/02 MySQL