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编写一个简单的Lisp解释器的教程
Apr 03 Python
Python 如何访问外围作用域中的变量
Sep 11 Python
numpy排序与集合运算用法示例
Dec 15 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
Feb 10 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
May 10 Python
python筛选出两个文件中重复行的方法
May 31 Python
Python3.5字符串常用操作实例详解
May 01 Python
pyenv与virtualenv安装实现python多版本多项目管理
Aug 17 Python
如何使用Python脚本实现文件拷贝
Nov 20 Python
python如何提取英语pdf内容并翻译
Mar 03 Python
使用python实现飞机大战游戏
Mar 23 Python
python遍历路径破解表单的示例
Nov 21 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入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
2011/07/14 PHP
PHP文件上传判断file是否己选择上传文件的方法
2014/11/10 PHP
php实现mysql事务处理的方法
2014/12/25 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
页面只有一个text的时候,回车自动submit的解决方法
2010/08/12 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
js判断当页面无法回退时关闭网页否则就history.go(-1)
2014/08/07 Javascript
jQuery实现预加载图片的方法
2015/03/17 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
2016/01/23 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
2016/04/17 Javascript
.net MVC+Bootstrap下使用localResizeIMG上传图片
2017/04/21 Javascript
微信小程序之购物车功能
2020/09/23 Javascript
AngularJS+bootstrap实现动态选择商品功能示例
2017/05/17 Javascript
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
clipboard.js在移动端复制失败的解决方法
2018/06/13 Javascript
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
vue axios数据请求及vue中使用axios的方法
2018/09/10 Javascript
Vue基本指令实例图文讲解
2021/02/25 Vue.js
Python实现简单网页图片抓取完整代码实例
2017/12/15 Python
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
pytorch 实现将自己的图片数据处理成可以训练的图片类型
2020/01/08 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
2020/02/07 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
pycharm 实现光标快速移动到括号外或行尾的操作
2021/02/05 Python
英国最大的线上保健品零售商之一:Vitamin Planet
2016/12/01 全球购物
欧洲最大的滑雪假期供应商之一:Sunweb Holidays
2018/01/06 全球购物
美国庭院家具购物网站:AlphaMarts
2019/04/10 全球购物
彪马荷兰官网:PUMA荷兰
2019/05/08 全球购物
物流经理自我评价
2013/09/23 职场文书
十八届三中全会感言
2014/03/10 职场文书
房产证明范本
2015/06/19 职场文书
python中取整数的几种方法
2021/11/07 Python
Python函数中apply、map、applymap的区别
2021/11/27 Python
彻底弄懂Python中的回调函数(callback)
2022/06/25 Python
win10如何更改appdata文件夹的默认位置?
2022/07/15 数码科技