一、在 pyplot 中绘制误差棒图的函数为:errorbar()
errorbar()函数的语法格式:
errorbar(x, y, yerr=None, xerr=None, fmt=' ' , ecolor=None, elinewidth=None,
capsize=None, barsabove=False, lolims=False, uplims=False, xlolims=False,
xuplims=False, errorevery=1, capthick=None, * , data=None, **kwargs)
该函数常用参数的含义如下 :
x, y : 表示数据点的位置。
xerr, yerr : 表示数据的误差范围。
fmt : 表示数据点的标记样式和数据点之间连接线的样式。
ecolor : 表示误差棒的线条颜色。
elinewidth : 表示误差棒的线条宽度。
capsize : 表示误差棒边界横杆的大小。(长度)
capthick : 表示误差棒边界横杆的厚度。
注意:如果 fmt 字符串提供了标记点的设置, 却没有提供线型设置,将不会画线。
二、步骤如下:
1. 导入 matplotlib.pyplot 库
import matplotlib.pyplot as plt
2. 导入名为 “numpy” 的 Python 库,并使用别名 “np” 来引用该库
import numpy as np
3. 设置支持汉字显示(固定代码,无需更改)
matplotlib 默认情况下不支持中文显示,如果需要显示中文,则我们需要做一些额外的设置操作。
plt.rcParams['font.family'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
使用 mpl.rcParams 设置参数时,是一种全局的设置
4. 设置变量
x = np.arange(3)
y1 = np.array([2.04, 1.57, 1.63])
y2 = np.array([1.69, 1.61, 1.64])
y3 = np.array([4.65, 4.99, 4.94])
y4 = np.array([3.39, 2.33, 4.10])
5. 指定测量偏差
error1 = [0.16, 0.08, 0.10]
error2 = [0.27, 0.14, 0.14]
error3 = [0.34, 0.32, 0.29]
error4 = [0.23, 0.23, 0.39]
bar_width = 0.2
6. 绘制柱形图
plt.bar(x, y1, bar_width)
plt.bar(x + bar_width, y2, bar_width, tick_label=["春季", "夏季", "秋季"])
plt.bar(x + 2*bar_width, y3, bar_width)
plt.bar(x + 3*bar_width, y4, bar_width)
plt.errorbar( x , y1 , yerr = error1 , capsize = 3 , elinewidth = 2 , marker = ' , ' , color = ' k ', ecolor = ' r ' , linestyle = ' -- ' )
plt.errorbar( x + bar_width , y2 , yerr = error2 , capsize = 3 , elinewidth = 2 , marker = ' , ' , color = ' k ' , ecolor = ' r ' , linestyle = ' -- ' )
plt.errorbar( x + 2*bar_width , y3, yerr = error3, capsize = 3, elinewidth = 2 , marker = ' , ' , color = ' k ' , ecolor = ' r ', linestyle = ' -- ')
plt.errorbar( x + 3*bar_width, y4, yerr = error4 , capsize = 3 , elinewidth = 2, marker = ' , ' , color = ' k ' , ecolor = ' r ' , linestyle = ' -- ' )
总代码如下:
# 1. 导入 matplotlib.pyplot 库
import matplotlib.pyplot as plt
# 2. 导入名为 “numpy” 的 Python 库,并使用别名 “np” 来引用该库
import numpy as np
# 3. 设置支持汉字显示(固定代码,无需更改)
# matplotlib 默认情况下不支持中文显示,如果需要显示中文,则我们需要做一些额外的设置操作。
plt.rcParams['font.family'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
# 使用 mpl.rcParams 设置参数时,是一种全局的设置
# 4. 设置变量
x = np.arange(3)
y1 = np.array([2.04, 1.57, 1.63])
y2 = np.array([1.69, 1.61, 1.64])
y3 = np.array([4.65, 4.99, 4.94])
y4 = np.array([3.39, 2.33, 4.10])
# 5. 指定测量偏差
error1 = [0.16, 0.08, 0.10]
error2 = [0.27, 0.14, 0.14]
error3 = [0.34, 0.32, 0.29]
error4 = [0.23, 0.23, 0.39]
bar_width = 0.2
# 6. 绘制柱形图
plt.bar(x, y1, bar_width)
plt.bar(x + bar_width, y2, bar_width, tick_label=["春季", "夏季", "秋季"])
plt.bar(x + 2*bar_width, y3, bar_width)
plt.bar(x + 3*bar_width, y4, bar_width)
plt.errorbar(x, y1, yerr = error1, capsize = 3, elinewidth = 2 , marker = ',', color = 'k', ecolor = 'r' ,linestyle = '--' )
plt.errorbar(x + bar_width, y2, yerr = error2, capsize = 3, elinewidth = 2, marker = ',', color = 'k', ecolor = 'r' , linestyle = '--')
plt.errorbar(x + 2*bar_width, y3, yerr = error3, capsize = 3, elinewidth = 2, marker = ',', color ='k', ecolor = 'r', linestyle = '--')
plt.errorbar(x + 3*bar_width, y4, yerr = error4, capsize = 3, elinewidth = 2, marker = ',', color ='k', ecolor = 'r', linestyle = '--')
# 7. 图表展示
plt.show()
6.1 颜色,点标记与线型设置
我们可以在绘制图形时,显式指定图形的颜色,点标记或线条形状。
color:线条颜色
linestyle(ls):线条形状
linewidth(lw):线宽
marker:点标记形状
markersize(ms):点标记的大小
markeredgecolor(mec):点边缘颜色
markeredgewidth(mew):点边缘宽度
markerfacecolor(mfc):点的颜色