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 不关闭控制台的实现方法
Oct 23 Python
python基础教程之udp端口扫描
Feb 10 Python
Python读取网页内容的方法
Jul 30 Python
python实现12306火车票查询器
Apr 20 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
May 08 Python
Python实现求一个集合所有子集的示例
May 04 Python
Pandas 数据处理,数据清洗详解
Jul 10 Python
如何不用安装python就能在.NET里调用Python库
Jul 12 Python
python 中xpath爬虫实例详解
Aug 26 Python
python构建指数平滑预测模型示例
Nov 21 Python
Django集成MongoDB实现过程解析
Dec 01 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
Jan 24 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
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
2016/12/09 PHP
thinkphp5使用无限极分类
2019/02/18 PHP
PHP通过GD库实现验证码功能示例
2019/02/23 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
一个判断email合法性的函数[非正则]
2008/12/09 Javascript
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
IE下js调试工具Companion.JS
2010/10/15 Javascript
jquery调用wcf并展示出数据的方法
2011/07/07 Javascript
js快速排序的实现代码
2013/12/08 Javascript
Javascript实现Web颜色值转换
2015/02/05 Javascript
fastclick插件导致日期(input[type="date"])控件无法被触发该如何解决
2015/11/09 Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
2017/02/14 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
Vue 实用分页paging实例代码
2017/04/12 Javascript
浅谈sass在vue注意的地方
2017/08/10 Javascript
Vue实现购物车的全选、单选、显示商品价格代码实例
2019/05/06 Javascript
Electron-vue开发的客户端支付收款工具的实现
2019/05/24 Javascript
NodeJS 文件夹拷贝以及删除功能
2019/09/03 NodeJs
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
2020/10/22 Javascript
python2.7到3.x迁移指南
2018/02/01 Python
Python实现的连接mssql数据库操作示例
2018/08/17 Python
Python的Lambda函数用法详解
2019/09/03 Python
softmax及python实现过程解析
2019/09/30 Python
Pytorch 实现focal_loss 多类别和二分类示例
2020/01/14 Python
python各层级目录下import方法代码实例
2020/01/20 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
python实现定时发送邮件
2020/12/23 Python
美国第一香水网站:Perfume.com
2017/01/23 全球购物
销售实习自我鉴定
2013/12/07 职场文书
机关搬迁方案
2014/05/18 职场文书
毕业生求职信范文
2014/06/29 职场文书
2015大学生实训报告
2014/11/05 职场文书
2014年派出所工作总结
2014/11/21 职场文书
奖学金发言稿(范文)
2019/08/21 职场文书
vue-cli4.5.x快速搭建项目
2021/05/30 Vue.js
React如何使用axios请求数据并把数据渲染到组件
2022/08/05 Javascript