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 version 2.7 required, which was not found in the registry
Aug 26 Python
python基础教程之循环介绍
Aug 29 Python
Python中的迭代器漫谈
Feb 03 Python
python 实时遍历日志文件
Apr 12 Python
利用python写个下载teahour音频的小脚本
May 08 Python
python使用mysql的两种使用方式
Mar 07 Python
Flask-WTF表单的使用方法
Jul 12 Python
Django中间件基础用法详解
Jul 18 Python
python字符串分割及字符串的一些常规方法
Jul 24 Python
python 并发编程 非阻塞IO模型原理解析
Aug 20 Python
使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式
Jan 08 Python
python删除文件、清空目录的实现方法
Sep 23 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
swfupload 多文件上传实现代码
2008/08/27 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
2015/01/30 PHP
PHP stream_context_create()函数的使用示例
2015/05/12 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
js解析与序列化json数据(三)json的解析探讨
2013/02/01 Javascript
求数组最大最小值方法适用于任何数组
2013/08/16 Javascript
js如何获取object类型里的键值
2014/02/18 Javascript
用js读、写、删除Cookie代码续篇
2014/12/03 Javascript
JavaScript获取IP获取的是IPV6 如何校验
2016/06/12 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
JavaScript 继承详解(五)
2016/10/11 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
2017/02/10 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
2017/05/17 Javascript
JavaScript实现京东放大镜效果
2019/12/03 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
2020/03/04 Javascript
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
python使用epoll实现服务端的方法
2018/10/16 Python
python开发之anaconda以及win7下安装gensim的方法
2019/07/05 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
python opencv将表格图片按照表格框线分割和识别
2019/10/30 Python
Python安装并操作redis实现流程详解
2020/10/13 Python
H5最强接口之canvas实现动态图形功能
2019/05/31 HTML / CSS
巴西最大的家电和百货零售商:Casas Bahia
2016/11/22 全球购物
施华洛世奇西班牙官网:SWAROVSKI西班牙
2019/06/06 全球购物
《夸父追日》教学反思
2014/02/26 职场文书
总经理任命书
2014/03/29 职场文书
售后服务承诺书模板
2014/05/21 职场文书
考生诚信考试承诺书
2014/05/23 职场文书
售房协议书
2014/08/19 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
检讨书模板
2015/01/29 职场文书
2016年清明节红领巾广播稿
2015/12/17 职场文书
情侣餐厅的创业计划书范本!
2019/07/26 职场文书
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL