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实现的jpg格式图片修复代码
Apr 21 Python
python daemon守护进程实现
Aug 27 Python
Python基于递归算法实现的走迷宫问题
Aug 04 Python
python3 中文乱码与默认编码格式设定方法
Oct 31 Python
Pycharm以root权限运行脚本的方法
Jan 19 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
Jun 28 Python
python将四元数变换为旋转矩阵的实例
Dec 04 Python
Python中包的用法及安装
Feb 11 Python
在PyCharm中实现添加快捷模块
Feb 12 Python
Keras 加载已经训练好的模型进行预测操作
Jun 17 Python
python实例化对象的具体方法
Jun 17 Python
通过代码实例了解Python3编程技巧
Oct 13 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语法(3)
2006/10/09 PHP
php中对xml读取的相关函数的介绍一
2008/06/05 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
php获取给定日期相差天数的方法分析
2017/02/20 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
php的命名空间与自动加载实现方法
2019/08/25 PHP
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
jQuery实现统计复选框选中数量
2014/11/24 Javascript
实现音乐播放器的代码(html5+css3+jquery)
2015/08/04 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
小程序实现列表点赞功能
2018/11/02 Javascript
vue实现表格过滤功能
2019/09/27 Javascript
vue中使用极验验证码的方法(附demo)
2019/12/04 Javascript
JavaScript 闭包的使用场景
2020/09/17 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
Python3.2中Print函数用法实例详解
2015/05/19 Python
python机器学习案例教程——K最近邻算法的实现
2017/12/28 Python
基于Python3.6+splinter实现自动抢火车票
2018/09/25 Python
Python实现操纵控制windows注册表的方法分析
2019/05/24 Python
Django中create和save方法的不同
2019/08/13 Python
python自动化UI工具发送QQ消息的实例
2019/08/27 Python
python 命令行传入参数实现解析
2019/08/30 Python
django框架创建应用操作示例
2019/09/26 Python
python列表生成器迭代器实例解析
2019/12/19 Python
pytorch 中的重要模块化接口nn.Module的使用
2020/04/02 Python
读取nii或nii.gz文件中的信息即输出图像操作
2020/07/01 Python
如何使用pycharm连接Databricks的步骤详解
2020/09/23 Python
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
Linux如何命名文件--使用文件名时应注意
2012/01/22 面试题
导游词之张家界
2019/10/31 职场文书
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle
分析Java中Map的遍历性能问题
2021/06/26 Java/Android
浅谈Java父子类加载顺序
2021/08/04 Java/Android
flex布局中使用flex-wrap实现换行的项目实践
2022/06/21 HTML / CSS