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生成器(Generator)详解
Apr 13 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
Apr 20 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
Aug 08 Python
Python有序字典简单实现方法示例
Sep 28 Python
Tensorflow 利用tf.contrib.learn建立输入函数的方法
Feb 08 Python
对python打乱数据集中X,y标签对的方法详解
Dec 14 Python
Python基础教程之异常详解
Jan 10 Python
在python 不同时区之间的差值与转换方法
Jan 14 Python
python程序 线程队列queue使用方法解析
Sep 23 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
Oct 23 Python
Python pandas如何向excel添加数据
May 22 Python
python进度条显示-tqmd模块的实现示例
Aug 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
德生PL330的评价与改造
2021/03/02 无线电
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
PHP 万年历实现代码
2012/10/18 PHP
getJSON跨域SyntaxError问题分析
2014/08/07 PHP
微信小程序 消息推送php服务器验证实例详解
2017/03/30 PHP
JavaScript 在线压缩和格式化收藏
2009/01/16 Javascript
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
Jquery 绑定时间实现代码
2011/05/03 Javascript
浅谈JavaScript中的this指针和引用知识
2016/08/05 Javascript
js闭包用法实例详解
2016/12/13 Javascript
JS图片压缩(pc端和移动端都适用)
2017/01/12 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
Python 异常处理实例详解
2014/03/12 Python
python 自动化将markdown文件转成html文件的方法
2016/09/23 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
2017/06/05 Python
Python遍历文件夹 处理json文件的方法
2019/01/22 Python
python opencv摄像头的简单应用
2019/06/06 Python
pycharm设置鼠标悬停查看方法设置
2019/07/29 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
2019/08/16 Python
基于Python爬取京东双十一商品价格曲线
2020/10/23 Python
如何用PyPy让你的Python代码运行得更快
2020/12/02 Python
python爬虫如何解决图片验证码
2021/02/14 Python
采购员岗位职责
2013/11/15 职场文书
土木工程专业个人求职信
2013/12/05 职场文书
美术教师自我鉴定
2014/02/12 职场文书
业务内勤岗位职责
2014/04/30 职场文书
好习惯伴我成长演讲稿
2014/05/21 职场文书
医学求职自荐信
2014/06/21 职场文书
2014年军人思想汇报范文
2014/10/12 职场文书
群众路线个人剖析材料及整改措施
2014/11/04 职场文书
工资证明格式模板
2015/06/12 职场文书
2015选调生工作总结
2015/07/24 职场文书
开业庆典嘉宾致辞
2015/08/01 职场文书
新党员入党决心书
2015/09/22 职场文书
Python爬虫实战之爬取携程评论
2021/06/02 Python
GO中sync包自由控制并发示例详解
2022/08/05 Golang