python使用matplotlib绘制柱状图教程


Posted in Python onFebruary 08, 2017

Matplotlib的概念这里就不多介绍了,关于绘图库Matplotlib的安装方法:点击这里

小编之前也和大家分享过python使用matplotlib实现的折线图和制饼图效果,感兴趣的朋友们也可以点击查看,下面来看看python使用matplotlib绘制柱状图的方法吧,具体如下:

1. 基本的柱状图

import matplotlib.pyplot as plt

data = [5, 20, 15, 25, 10]

plt.bar(range(len(data)), data)
plt.show()

python使用matplotlib绘制柱状图教程

plt.bar函数签名为:

bar(left, height, width=0.8, bottom=None, **kwargs)

事实上,left,height,width,bottom这四个参数确定了柱体的位置和大小。默认情况下,left为柱体的居中位置(可以通过align参数来改变left值的含义),即:

  • (left - width / 2, bottom)为左下角位置
  • (left + width / 2, bottom + height)为右上角位置

例如:

import matplotlib.pyplot as plt

data = [5, 20, 15, 25, 10]

plt.bar([0.3, 1.7, 4, 6, 7], data, width=0.6, bottom=[10, 0, 5, 0, 5])
plt.show()

python使用matplotlib绘制柱状图教程

2. 设置柱体样式

(1)颜色

通过facecolor(或fc)关键字参数可以设置柱体颜色,例如:

import matplotlib.pyplot as plt

data = [5, 20, 15, 25, 10]

plt.bar(range(len(data)), data, fc='g')
plt.show()

python使用matplotlib绘制柱状图教程

通过color关键字参数 可以一次性设置多个颜色,例如:

import matplotlib.pyplot as plt

data = [5, 20, 15, 25, 10]

plt.bar(range(len(data)), data, color='rgb') # or `color=['r', 'g', 'b']`
plt.show()

python使用matplotlib绘制柱状图教程

(2)描边

相关的关键字参数为:

  • edgecolor 或 ec
  • linestyle 或 ls
  • linewidth 或 lw

例如:

import matplotlib.pyplot as plt

data = [5, 20, 15, 25, 10]

plt.bar(range(len(data)), data, ec='r', ls='--', lw=2)
plt.show()

python使用matplotlib绘制柱状图教程

(3)填充

hatch关键字可用来设置填充样式,可取值为:/, \, |, -, +, x, o, O, ., *。例如:

import matplotlib.pyplot as plt

data = [5, 20, 15, 25, 10]

plt.bar(range(len(data)), data, ec='k', lw=1, hatch='o')
plt.show()

python使用matplotlib绘制柱状图教程 

3. 设置tick label

import matplotlib.pyplot as plt

data = [5, 20, 15, 25, 10]
labels = ['Tom', 'Dick', 'Harry', 'Slim', 'Jim']

plt.bar(range(len(data)), data, tick_label=labels)
plt.show()

python使用matplotlib绘制柱状图教程

4. 堆叠柱状图

通过bottom参数,可以绘制堆叠柱状图。例如:

import numpy as np
import matplotlib.pyplot as plt

size = 5
x = np.arange(size)
a = np.random.random(size)
b = np.random.random(size)

plt.bar(x, a, label='a')
plt.bar(x, b, bottom=a, label='b')
plt.legend()
plt.show()

python使用matplotlib绘制柱状图教程

5. 并列柱状图

绘制并列柱状图与堆叠柱状图类似,都是绘制多组柱体,只需要控制好每组柱体的位置和大小即可。例如:

import numpy as np
import matplotlib.pyplot as plt

size = 5
x = np.arange(size)
a = np.random.random(size)
b = np.random.random(size)
c = np.random.random(size)

total_width, n = 0.8, 3
width = total_width / n
x = x - (total_width - width) / 2

plt.bar(x, a, width=width, label='a')
plt.bar(x + width, b, width=width, label='b')
plt.bar(x + 2 * width, c, width=width, label='c')
plt.legend()
plt.show()

python使用matplotlib绘制柱状图教程

6. 条形图

使用barh方法绘制条形图。例如:

import matplotlib.pyplot as plt

data = [5, 20, 15, 25, 10]

plt.barh(range(len(data)), data)
plt.show()

python使用matplotlib绘制柱状图教程

plt.barh方法的签名为:

barh(bottom, width, height=0.8, left=None, **kwargs)

可以看到与plt.bar方法类似。因此堆积条形图和并列条形图的画法与前面类似,不做赘述。

7. 正负条形图

import numpy as np
import matplotlib.pyplot as plt

a = np.array([5, 20, 15, 25, 10])
b = np.array([10, 15, 20, 15, 5])

plt.barh(range(len(a)), a)
plt.barh(range(len(b)), -b)
plt.show()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用python能带来一定的帮助,如果有疑问大家可以留言交流。

Python 相关文章推荐
python开启多个子进程并行运行的方法
Apr 18 Python
Python装饰器使用实例:验证参数合法性
Jun 24 Python
Python字符串格式化输出方法分析
Apr 13 Python
Python3操作SQL Server数据库(实例讲解)
Oct 21 Python
Python爬取当当、京东、亚马逊图书信息代码实例
Dec 09 Python
Python实现Pig Latin小游戏实例代码
Feb 02 Python
Python中利用aiohttp制作异步爬虫及简单应用
Nov 29 Python
Python之lambda匿名函数及map和filter的用法
Mar 05 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
Apr 30 Python
pandas DataFrame行或列的删除方法的实现示例
Aug 02 Python
pycharm 配置svn的图文教程(手把手教你)
Jan 15 Python
python如何获取网络数据
Apr 11 Python
Python实现简单的多任务mysql转xml的方法
Feb 08 #Python
python使用matplotlib绘制折线图教程
Feb 08 #Python
关于Python中Inf与Nan的判断问题详解
Feb 08 #Python
python3.5实现socket通讯示例(TCP)
Feb 07 #Python
Python中字典的setdefault()方法教程
Feb 07 #Python
Python连接数据库学习之DB-API详解
Feb 07 #Python
使用Python中的tkinter模块作图的方法
Feb 07 #Python
You might like
PHP4 与 MySQL 数据库操作函数详解
2006/10/09 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
2014/11/18 PHP
开启PHP Static 关键字之旅模式
2015/11/13 PHP
Yii 框架使用数据库(databases)的方法示例
2020/05/19 PHP
半角全角相互转换的js函数
2009/10/16 Javascript
jquery 操作日期、星期、元素的追加的实现代码
2012/02/07 Javascript
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
详细分析JavaScript变量类型
2015/07/08 Javascript
js自定义回调函数
2015/12/13 Javascript
canvas知识总结
2017/01/25 Javascript
jQuery实现弹窗居中效果类似alert()
2017/02/27 Javascript
jQuery实现拼图小游戏(实例讲解)
2017/07/24 jQuery
使用Dropzone.js上传的示例代码
2017/10/10 Javascript
详解vue-cli快速构建vue应用并实现webpack打包
2017/12/13 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
python实现求最长回文子串长度
2018/01/22 Python
Django重置migrations文件的方法步骤
2019/05/01 Python
Python中模块(Module)和包(Package)的区别详解
2019/08/07 Python
win10从零安装配置pytorch全过程图文详解
2020/05/08 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
tensorflow转换ckpt为savermodel模型的实现
2020/05/25 Python
python中pathlib模块的基本用法与总结
2020/08/17 Python
css3 flex布局 justify-content:space-between 最后一行左对齐
2020/01/02 HTML / CSS
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
Andrew Marc官网:设计师外套的领先制造商
2019/10/30 全球购物
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
校园报刊亭创业计划书
2014/01/02 职场文书
大学生关于奋斗的演讲稿
2014/01/09 职场文书
韩国商务邀请函
2014/01/14 职场文书
网吧消防安全责任书
2014/07/29 职场文书
入党积极分子批评与自我批评思想汇报
2014/09/14 职场文书
最感人的道歉情书
2015/05/12 职场文书
借款民事起诉状范文
2015/05/19 职场文书
医院感染管理制度
2015/08/05 职场文书
Redis 配置文件重要属性的具体使用
2021/05/20 Redis