Python绘图之柱形图绘制详解

作者:吃着东西不想停 时间:2023-08-16 16:16:49 

前言

用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绘图之柱形图绘制详解

来源:https://www.cnblogs.com/zwhy8/p/13387161.html

标签:Python,柱形图
0
投稿

猜你喜欢

  • Linux下安装mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz

    2024-01-27 20:07:57
  • SQL Server内存机制详解

    2024-01-20 09:57:48
  • Python基于staticmethod装饰器标示静态方法

    2022-11-07 07:25:11
  • Tkinter组件Entry的具体使用

    2023-03-21 00:41:40
  • Python中的filter()函数的用法

    2022-04-23 11:42:15
  • 详解用Python爬虫获取百度企业信用中企业基本信息

    2022-07-27 18:49:52
  • SQL语句练习实例之二——找出销售冠军

    2024-01-26 01:12:19
  • 详解Python中的字符串格式化

    2023-09-10 22:38:14
  • pytest解读fixtures之Teardown处理yield和addfinalizer方案

    2023-06-18 22:13:01
  • rs.open与conn.execute详细解释

    2008-07-03 12:54:00
  • Django零基础入门之模板变量详解

    2023-03-19 11:17:16
  • python绘制横竖条形图的方法

    2021-12-03 14:15:17
  • Python统计python文件中代码,注释及空白对应的行数示例【测试可用】

    2023-04-30 00:11:19
  • python爬虫使用cookie登录详解

    2023-10-13 06:36:39
  • Python项目打包成二进制的方法

    2023-11-07 05:22:02
  • FCKeditor.Net_2.2安全修正版

    2024-03-08 20:09:48
  • Python快速实现分列转到行的示例代码

    2021-08-13 09:14:11
  • 详解Python执行py文件是否需要可执行权限

    2021-01-19 10:52:53
  • 讲解无法打开用户默认数据库的解决方法

    2008-12-05 15:55:00
  • XHTML与HTML之间的7个区别

    2009-05-20 10:13:00
  • asp之家 网络编程 m.aspxhome.com