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+matplotlib绘制3D条形图实例代码
Jan 17 Python
python删除不需要的python文件方法
Apr 24 Python
django静态文件加载的方法
May 20 Python
Sanic框架流式传输操作示例
Jul 18 Python
Python3 jupyter notebook 服务器搭建过程
Nov 30 Python
Python中的元组介绍
Jan 28 Python
python opencv实现证件照换底功能
Aug 19 Python
利用PyQt中的QThread类实现多线程
Feb 18 Python
解决keras模型保存h5文件提示无此目录问题
Jul 01 Python
学习Python爬虫的几点建议
Aug 05 Python
Python3.9.1中使用match方法详解
Feb 08 Python
Pytest实现setup和teardown的详细使用详解
Apr 17 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
一个简单实现多条件查询的例子
2006/10/09 PHP
php实现根据字符串生成对应数组的方法
2014/09/22 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
Javascript 学习笔记 错误处理
2009/07/30 Javascript
快速排序 php与javascript的不同之处
2011/02/22 Javascript
js控制CSS样式属性语法对照表
2012/12/11 Javascript
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
Extjs中RowExpander控件的默认展开问题示例探讨
2014/01/24 Javascript
JavaScript中标识符提升问题
2015/06/11 Javascript
jQuery动态星级评分效果实现方法
2015/08/06 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
bootstrap select插件封装成Vue2.0组件
2017/04/17 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
微信小程序视图template模板引用的实例详解
2017/09/20 Javascript
简单理解Vue中的nextTick方法
2018/01/30 Javascript
Vue中v-show添加表达式的问题(判断是否显示)
2018/03/26 Javascript
关于layui导航栏不展示下拉列表的解决方法
2019/09/25 Javascript
jQuery 淡入/淡出效果函数用法分析
2020/05/19 jQuery
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
[02:20]DOTA2亚洲邀请赛 EHOME战队出场宣传片
2015/02/07 DOTA
使用Pyrex来扩展和加速Python程序的教程
2015/04/13 Python
python将unicode转为str的方法
2017/06/21 Python
Django admin实现图书管理系统菜鸟级教程完整实例
2017/12/12 Python
python实现二叉查找树实例代码
2018/02/08 Python
Python get获取页面cookie代码实例
2018/09/12 Python
在python中创建指定大小的多维数组方式
2019/11/28 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
Kmeans均值聚类算法原理以及Python如何实现
2020/09/26 Python
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
美国购车网站:TrueCar
2016/10/19 全球购物
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
解释DataSet(ds) 和 ds as DataSet 的含义
2014/07/27 面试题
几个判断型的面试题
2012/07/03 面试题
端午节活动总结
2014/08/26 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
你需要掌握的20个Python常用技巧
2022/02/28 Python