使用 matplotlib 在禁止使用fmt关键词传递格式字符串的条件下绘制一个误差棒图

本文详细介绍了如何在Python的pyplot库中使用errorbar函数绘制带有误差范围的柱状图,并展示了如何设置数据点、误差棒的颜色、线型和大小。步骤包括导入库、设置字体支持、定义数据和误差值,以及调整绘图参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、在 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):点的颜色

说明:
颜色,点标记与线型可以使用一个参数进行设置颜色除了可以使用预设简写的字符之外,也可以使用全称(例如red)也可以使用RGB颜色表示。

7. 图表展示

plt.show()

绘制均值和误差棒图是一种常见的数据可视化方法,用于展示一组数据的平均值以及其不确定性范围(例如标准差、置信区间等)。这种图表可以帮助我们更直观地理解数据的变化趋势及波动情况。 以下是绘制均值和误差棒图的基本步骤: 1. **准备数据** - 首先需要有一组或多组数据样本,并计算出每组数据的均值 (mean) 和对应的误差值(如标准差 stddev 或者置信区间 confidence interval 等)。 2. **选择工具** 常见的数据绘图工具有 Python 的 Matplotlib 库、Seaborn 库或者其他专业软件比如 Excel、Origin 等。 3. **使用Matplotlib绘制错误棒图示例** ```python import numpy as np import matplotlib.pyplot as plt # 数据点 x 轴位置及其对应均值 y x = np.arange(0.5, 5.5, 1) mean_y = [6.4, 7.8, 9.2, 10.5] errors = [0.8, 1.0, 1.2, 1.5] # 每个点的标准偏差或其他度量误差 # 创建画布并设置标题 fig, ax = plt.subplots() ax.errorbar(x, mean_y, yerr=errors, fmt='-o', ecolor='red', capsize=5) ax.set_title('Mean and Error Bars') ax.set_xlabel('X-axis Label') ax.set_ylabel('Y-axis Label') plt.show() ``` 上述代码片段展示了如何利用 `matplotlib` 中的 `errorbar()` 函数快速生成带误差棒的图形。其中关键参数解释如下: - `x`: 定义了 X轴上各点的位置; - `y`: 对应于每个 X轴坐标上的 Y值也就是该处所有测量结果取算术平均得到的结果; - `yerr`: 表达的是上下浮动幅度即不确定性的大小,默认表示正负方向都存在同样的偏移量;如果只给出单一数值则统一应用于全部节点; - `fmt`: 控制线型样式 (-), 标记形状(o); - 其他选项像颜色(ecolor) 及端帽宽度(capsize)进一步美化图像细节部分。 通过以上操作就可以轻松制作出清晰易懂又美观大方的“均值+误差”柱状统计图表啦!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值