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

一、在 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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值