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基于pygame实现图片代替鼠标移动效果
Nov 11 Python
浅谈Python 中整型对象的存储问题
May 16 Python
Python基础中所出现的异常报错总结
Nov 19 Python
Python编程实现控制cmd命令行显示颜色的方法示例
Aug 14 Python
Python numpy.array()生成相同元素数组的示例
Nov 12 Python
python Pexpect 实现输密码 scp 拷贝的方法
Jan 03 Python
Python3.6实现带有简单界面的有道翻译小程序
Apr 16 Python
python如何写出表白程序
Jun 01 Python
Python实现初始化不同的变量类型为空值
Jun 02 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
Dec 09 Python
浅析python字符串前加r、f、u、l 的区别
Jan 24 Python
Django中template for如何使用方法
Jan 31 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
解析php入库和出库
2013/06/25 PHP
一个PHP二维数组排序的函数分享
2014/01/17 PHP
PHP中模拟处理HTTP PUT请求的例子
2014/07/22 PHP
PHP编译安装时常见错误解决办法
2015/05/28 PHP
php实现学生管理系统
2020/03/21 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
2016/10/17 PHP
event.srcElement 用法笔记e.target
2009/12/18 Javascript
初窥JQuery(二) 事件机制(1)
2010/11/25 Javascript
JS自动缩小超出大小的图片
2012/10/12 Javascript
asp.net中System.Timers.Timer的使用方法
2013/03/20 Javascript
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
Sea.JS知识总结
2016/05/05 Javascript
详解JavaScript常量定义
2017/01/03 Javascript
jQuery EasyUI之验证框validatebox实例详解
2017/04/10 jQuery
vue解决一个方法同时发送多个请求的问题
2018/09/25 Javascript
微信小程序一周时间表功能实现
2019/10/17 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
2020/01/18 Javascript
浅谈Vue 自动化部署打包上线
2020/06/14 Javascript
python自动化测试之连接几组测试包实例
2014/09/28 Python
Python利用Beautiful Soup模块搜索内容详解
2017/03/29 Python
python处理xml文件的方法小结
2017/05/02 Python
利用python求相邻数的方法示例
2017/08/18 Python
对numpy的array和python中自带的list之间相互转化详解
2018/04/13 Python
Python单元测试unittest的具体使用示例
2018/12/17 Python
Python中的异常处理try/except/finally/raise用法分析
2019/02/28 Python
django多种支付、并发订单处理实例代码
2019/12/13 Python
用python实现一个简单的验证码
2020/12/09 Python
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
html5 兼容IE6结构的实现代码
2012/05/14 HTML / CSS
美国香薰蜡烛品牌:PADDYWAX
2018/10/06 全球购物
市场营销专业推荐信
2013/11/03 职场文书
超市开学活动方案
2014/03/01 职场文书
公司业务员岗位职责
2014/03/18 职场文书
2014年化工厂工作总结
2014/11/25 职场文书
2015年党性分析材料
2014/12/19 职场文书
gateway网关接口请求的校验方式
2021/07/15 Java/Android