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使用xmlrpc实例讲解
Dec 17 Python
python中的对象拷贝示例 python引用传递
Jan 23 Python
python的类方法和静态方法
Dec 13 Python
Python 类与元类的深度挖掘 II【经验】
May 06 Python
机器学习的框架偏向于Python的13个原因
Dec 07 Python
django 多数据库配置教程
May 30 Python
Python3内置模块pprint让打印比print更美观详解
Jun 02 Python
Python 写入训练日志文件并控制台输出解析
Aug 13 Python
关于Pytorch的MLP模块实现方式
Jan 07 Python
tensorflow 实现自定义梯度反向传播代码
Feb 10 Python
套娃式文件夹如何通过Python批量处理
Aug 23 Python
python turtle绘图
May 04 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
Linux下ZendOptimizer的安装与配置方法
2007/04/12 PHP
JS实现php的伪分页
2008/05/25 PHP
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
SWFObject Flash js调用类
2008/07/08 Javascript
原生javascript实现图片轮播效果代码
2010/09/03 Javascript
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
基于jquery的可多选的下拉列表框
2012/07/20 Javascript
使用JS读秒使用示例
2013/09/21 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
跟我学Nodejs(三)--- Node.js模块
2014/05/25 NodeJs
用html+css+js实现的一个简单的图片切换特效
2014/05/28 Javascript
JavaScript实现动态创建CSS样式规则方案
2014/09/06 Javascript
JavaScript中object和Object的区别(详解)
2017/02/27 Javascript
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
python3实现ftp服务功能(客户端)
2017/03/24 Python
基于python的字节编译详解
2017/09/20 Python
python实现聚类算法原理
2018/02/12 Python
详解用Python实现自动化监控远程服务器
2019/05/18 Python
pyqt5 删除layout中的所有widget方法
2019/06/25 Python
在Python中画图(基于Jupyter notebook的魔法函数)
2019/10/28 Python
pycharm双击无响应(打不开问题解决办法)
2020/01/10 Python
python super用法及原理详解
2020/01/20 Python
解决python运行启动报错问题
2020/06/01 Python
18-35岁旅游团的全球领导者:Contiki
2017/02/08 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
英国最大的天然和有机产品在线零售商之一:Big Green Smile
2020/05/06 全球购物
班组长的岗位职责
2013/12/09 职场文书
竞选部门副经理的自荐书范文
2014/02/11 职场文书
社会治安综合治理管理责任书
2014/04/16 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
工伤事故处理协议书怎么写
2014/10/15 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
小公司融资,商业计划书的8切记
2019/07/15 职场文书
详解MySQL连接挂死的原因
2021/05/18 MySQL
create-react-app开发常用配置教程
2022/06/25 Javascript