Python绘图之柱形图绘制详解


Posted in Python onJuly 28, 2020

前言

用python编程绘图,其实非常简单。中学生、大学生、研究生都能通过这10篇教程从入门到精通!快速绘制几种简单的柱状图。

1垂直柱图(普通柱图)

Python绘图之柱形图绘制详解

绘制普通柱图的python代码如下:

(左右滑动可以查看全部代码)

# -*- coding:utf-8 -*-
 # 申明编码格式为utf-8
 
 import matplotlib as mpl
 import matplotlib.pyplot as plt
 mpl.rcParams["font.sans-serif"]=["SimHei"]
 #指定字体为SimHei,用于显示中文,如果Ariel,中文会乱码
 mpl.rcParams["axes.unicode_minus"]=False
#用来正常显示负号

x = [1,2,3,4,5,6,7,8]
y = [30,11,42,53,81,98,72,25]
#数据
abels=["A","B","C","D","E","F","G","H"]
#定义柱子的标签
plt.bar(x,y,align="center",color="rgb",tick_label=labels,hatch=" ",ec='gray')
#绘制纵向柱状图,hatch定义柱图的斜纹填充,省略该参数表示默认不填充。

#bar柱图函数还有以下参数:
#颜色:color,可以取具体颜色如red(简写为r),也可以用rgb让每条柱子采用不同颜色。
#描边:edgecolor(ec):边缘颜色;linestyle(ls):边缘样式;linewidth(lw):边缘粗细
#填充:hatch,取值:/,|,-,+,x,o,O,.,*
#位置标志:tick_label

plt.xlabel(u"样品编号")
plt.ylabel(u"库伦效率/%")

plt.show()

2 水平柱图

将上述代码稍微调整几行代码即可绘制出水平柱图。

(1)第19行“plt.bar”加一个字母h,即“plt.barh”

(2)第28和29行两行的“plt.xlabel”和“plt.ylable”中的x和y互换一下。

得到绘图效果如下:

Python绘图之柱形图绘制详解

3堆积柱图

将第1点中代码第14~21行代码调整如下:

(左右滑动可以查看全部代码)

x = [1,2,3,4,5,6,7,8]
y = [30,11,42,53,81,98,72,25]
y1= [45,23,44,67,88,89,65,75]
#数据
labels=["A","B","C","D","E","F","G","H"]
#定义柱子的标签
plt.bar(x,y,align="center",color="b",tick_label=labels,hatch=" ",ec='gray')
#绘制纵向柱状图,hatch定义柱图的斜纹填充,省略该参数表示默认不填充。
plt.bar(x,y1,align="center",color="g",tick_label=labels,hatch=" ",ec='gray',bottom=y)

绘制出垂直堆积图效果如下:

Python绘图之柱形图绘制详解

上述第22行是绘制y1第二组柱图,与第一组y柱图绘制的plt.bar()函数中不同的是,y1柱图的绘制参数中多了一个bottom=y,即柱图的底部设置为第一组y值,这样可以将y1堆积在y上。至于水平堆积柱图的python代码与上述类似。

4并列柱图

并列柱图,特别是带误差棒的柱图,是我们最常用的柱状图。

Python绘图之柱形图绘制详解

完整代码如下:

(左右滑动可以查看全部代码)

# -*- coding:utf-8 -*-
# 申明编码格式为utf-8

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

mpl.rcParams["font.sans-serif"]=["SimHei"]
#指定字体为SimHei,用于显示中文,如果Ariel,中文会乱码
mpl.rcParams["axes.unicode_minus"]=False
#用来正常显示负号

x = np.arange(8) #产生1~8的序列
#注意:这里使用numpy库,需要在程序开始时导包“import numpy as np”
y = [10,11,22,33,41,58,62,75]
std_err=[2,4,5,6,8,9,8,6] #误差棒
y1= [15,23,44,67,88,99,95,85]
std_err1=[1,2,1,2,1,2,3,2] #误差棒
#数据
error_attri = dict(elinewidth=1,ecolor="r",capsize=3)
#定义误差棒属性的字典数据。这三个参数分别定义误差棒的线宽、颜色、帽子大小
tick_label=["A","B","C","D","E","F","G","H"]
#定义柱子的标签
bar_width=0.35
#定义柱宽
plt.bar(x,y,bar_width,color="lightgreen",align="center",label="掺杂前",yerr=std_err,error_kw=error_attri)
#绘制纵向柱状图,hatch定义柱图的斜纹填充,省略该参数表示默认不填充。

plt.xticks(x+bar_width/2,tick_label)
plt.xlabel("样品编号")
plt.ylabel("降解率/%")
plt.legend()
plt.show()

5堆积误差棒柱图

前面第4点中修改第28~32行如下:

plt.bar(x,y,color="g",align="center",label="掺杂前",yerr=std_err,error_kw=error_attri)
#绘制纵向柱状图,hatch定义柱图的斜纹填充,省略该参数表示默认不填充。
plt.bar(x,y1,bottom=y,color="y",align="center",label="掺杂后",yerr=std_err1,error_kw=error_attri)
plt.xticks(x,tick_label)

即可绘制出堆积误差柱图,效果如下:

Python绘图之柱形图绘制详解

到此这篇关于Python绘图之柱形图绘制详解的文章就介绍到这了,更多相关Python绘图之柱形图内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python入门之语句(if语句、while语句、for语句)
Jan 19 Python
python实现将元祖转换成数组的方法
May 04 Python
python爬虫获取淘宝天猫商品详细参数
Jun 23 Python
python smtplib发送带附件邮件小程序
May 22 Python
Python subprocess模块功能与常见用法实例详解
Jun 28 Python
python实现石头剪刀布小游戏
Jan 20 Python
python搜索包的路径的实现方法
Jul 19 Python
Djang的model创建的字段和参数详解
Jul 27 Python
pygame实现俄罗斯方块游戏(基础篇2)
Oct 29 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
Feb 07 Python
Python读取表格类型文件代码实例
Feb 17 Python
查看jupyter notebook每个单元格运行时间实例
Apr 22 Python
Python如何定义接口和抽象类
Jul 28 #Python
Python爬虫之爬取淘女郎照片示例详解
Jul 28 #Python
Python selenium键盘鼠标事件实现过程详解
Jul 28 #Python
用python写爬虫简单吗
Jul 28 #Python
公认8个效率最高的爬虫框架
Jul 28 #Python
python如何爬取网页中的文字
Jul 28 #Python
Python同时处理多个异常的方法
Jul 28 #Python
You might like
dedecms防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
2014/03/17 PHP
php常用正则函数实例小结
2016/12/29 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
25个非常棒的jQuery滑块插件和教程小结
2011/09/02 Javascript
javascript 兼容各个浏览器的事件
2015/02/04 Javascript
jquery实现表格隔行换色效果
2015/11/19 Javascript
js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】
2016/08/02 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
JavaScript实现打印星型金字塔功能实例分析
2017/09/27 Javascript
vue组件详解之使用slot分发内容
2018/04/09 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
2018/08/19 Javascript
详解如何使用webpack打包多页jquery项目
2019/02/01 jQuery
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
python基于phantomjs实现导入图片
2016/05/13 Python
python 开发的三种运行模式详细介绍
2017/01/18 Python
python+pyqt实现12306图片验证效果
2017/10/25 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
Python3中的列表生成式、生成器与迭代器实例详解
2018/06/11 Python
Python异常处理操作实例详解
2018/08/28 Python
python输出电脑上所有的串口名的方法
2019/07/02 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
python自定义时钟类、定时任务类
2021/02/22 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
自定义Django默认的sitemap站点地图样式
2020/03/04 Python
css3实现垂直下拉动画菜单示例
2014/04/22 HTML / CSS
TCP/IP的分层模型
2013/10/27 面试题
财务出纳岗位职责
2014/02/03 职场文书
迎国庆演讲稿
2014/09/05 职场文书
学习退步检讨书
2014/09/28 职场文书
党的群众路线教育实践活动个人对照检查材料(四风)
2014/11/05 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
2015年英语教研组工作总结
2015/05/23 职场文书
漂亮妈妈观后感
2015/06/08 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js