前言
用python编程绘图,其实非常简单。中学生、大学生、研究生都能通过这10篇教程从入门到精通!快速绘制几种简单的柱状图。
1垂直柱图(普通柱图)
绘制普通柱图的python代码如下:
(左右滑动可以查看全部代码)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# -*- 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互换一下。
得到绘图效果如下:
3堆积柱图
将第1点中代码第14~21行代码调整如下:
(左右滑动可以查看全部代码)
1
2
3
4
5
6
7
8
9
|
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) |
绘制出垂直堆积图效果如下:
上述第22行是绘制y1第二组柱图,与第一组y柱图绘制的plt.bar()函数中不同的是,y1柱图的绘制参数中多了一个bottom=y,即柱图的底部设置为第一组y值,这样可以将y1堆积在y上。至于水平堆积柱图的python代码与上述类似。
4并列柱图
并列柱图,特别是带误差棒的柱图,是我们最常用的柱状图。
完整代码如下:
(左右滑动可以查看全部代码)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# -*- 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行如下:
1
2
3
4
|
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绘图之柱形图内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://www.cnblogs.com/zwhy8/p/13387161.html