python绘制带误差棒的柱状图

  • 设置图片像素以及全局字体
#dpi为像素大小y
fig, ax = plt.subplots(dpi=3000)
plt.tick_params(labelsize=12)
labels = ax.get_xticklabels() + ax.get_yticklabels()
[label.set_fontname('Times New Roman') for label in labels]
font = {'family': 'Times New Roman','size': 10}
font_1 = {'family': 'Times New Roman','size': 14}
plt.rcParams["font.family"] = "Times New Roman"  #全图字号新罗马字体
  • 柱状图填充
'''
# linstyle 表示线条格式
plt.bar(r1, bars1, width = 'barWidth线宽',color = 'white填充颜色', 
        edgecolor = '边缘颜色black', 
        yerr=yer1, capsize=3, 误差棒大小
        label='CK',lw=.8,hatch='...',填充大小
        alpha=.6,linestyle='--'透明度和边线样式)
hatch填充:{'/','\','|','+','x','o','.','*'}
'''
  • 图例设置

'''
bbox_to_anchor=(num1, num2)
有时仅通过第一个参数还不能满足我们的预期,比如会出现图例堆叠在一起的情况,这时候就需要调整第二个参数。
num1 用于控制 legend 的左右移动,值越大,越向右移动;
num2 用于控制 legend 的上下移动,值越大,越向'上移动'。
'''

'''
#   图例放置的位置
#   upper right
#  upper left
#  lower left
#  lower right
#  right
#  center left
#  center right
#  lower center
#  upper center
#  center
'''
'''
1:几条线设置几个标签
2:fontsize:字体大小
3:edgecolor:图例边框颜色
4:loc:图例位置
5:frameon:图例加不加框
plt.legend([r"a",r"b",r"c"],fontsize=18,edgecolor="black",loc='lower right', frameon=True)
'''
# 设置图例显示行数
plt.legend(bbox_to_anchor=(0.1,0.98), loc=2, borderaxespad=0,prop=font,ncol=5,frameon=False)
ncol为设置图例行数
  • 完整代码 
# # -*- coding: utf-8 -*-
# """
# Created on Thu Apr 13 09:07:03 2023

# @author: ypzhao
# """
import numpy as np
import matplotlib.pyplot as plt

#dpi为像素大小y
fig, ax = plt.subplots(dpi=3000)
plt.tick_params(labelsize=12)
labels = ax.get_xticklabels() + ax.get_yticklabels()
[label.set_fontname('Times New Roman') for label in labels]
font = {'family': 'Times New Roman','size': 10}
font_1 = {'family': 'Times New Roman','size': 14}
plt.rcParams["font.family"] = "Times New Roman"  #全图字号新罗马字体
#设置分辨率
#设置图的尺寸(480x480)
# plt.figure(dpi=3000)
barWidth = 0.1
bars1 = [5.20, 7.67, 7.50]
bars2 = [7.73,7.85, 7.50]
bars3 = [7.35,7.72,7.68] 
bars4 = [7.45,7.90,7.74] 
bars5 = [7.56,7.66,7.72] 

#设置误差线的高度
yer1 = [2, 1.1, 0.8]
yer2 = [0.3, 0.2, 0.6]
yer3 = [1.1, 0.7, 0.7]
yer4 = [0.3, 2.4, 0.4]
yer5 = [1.2, 0.6, 0.1]

r1 = np.arange(len(bars4))
r2 = [x + barWidth for x in r1]
r3 = [x + barWidth for x in r2]
r4 = [x + barWidth for x in r3]
r5 = [x + barWidth for x in r4]
'''
# linstyle 表示线条格式
plt.bar(r1, bars1, width = 'barWidth线宽',color = 'white填充颜色', 
        edgecolor = '边缘颜色black', 
        yerr=yer1, capsize=3, 误差棒大小
        label='CK',lw=.8,hatch='...',填充大小
        alpha=.6,linestyle='--'透明度和边线样式)
hatch填充:{'/','\','|','+','x','o','.','*'}
'''

plt.bar(r1, bars1, width = barWidth,color = 'white', edgecolor = 'black', 
        yerr=yer1, capsize=3, label='CK',lw=.8,hatch='...',alpha=.6,linestyle='--')
plt.bar(r2, bars2, width = barWidth, color = 'white', edgecolor = 'black', 
        yerr=yer2, capsize=3, label='S1',lw=.8,hatch='***',alpha=.4)
plt.bar(r3, bars3, width = barWidth, color = 'white',edgecolor = 'black', 
        yerr=yer2, capsize=3, label='S2',lw=.8,hatch='+++',alpha=.3)
plt.bar(r4, bars4, width = barWidth, color = 'white', edgecolor = 'black', 
        yerr=yer2, capsize=3, label='S3',lw=.8,hatch='ooo',alpha=.5)
plt.bar(r5, bars5, width = barWidth, color = 'white', edgecolor = 'black', 
        yerr=yer2, capsize=3, label='S4',lw=.8,hatch='xxx',alpha=.4)
plt.xticks([r + barWidth for r in range(len(bars3))], ['30', '45', '60'])

plt.ylabel('pH',font_1)
plt.xlabel("day",font_1)
#创建图例

# plt.annotate('c',xy=(1,1),xytext=(-0.04, 10),fontsize=20)


ax.axis([-0.1, 2.5, 0, 10])   #X、Y轴区间
plt.legend(bbox_to_anchor=(0.1,0.98), loc=2, borderaxespad=0,prop=font,ncol=5,frameon=False)
# 设置图例显示行数
from matplotlib import pyplot as plt
# 设置右和上边框是否可见
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
# plt.savefig('respiration.pdf')
plt.savefig('pH.jpg',dpi=3000) #保存为图片jpg格式
plt.show()
#展示图片

  • 运行结果

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python中,可以使用Matplotlib库来绘制误差柱状图。要绘制误差柱状图,你需要使用bar函数来创建柱状图,并使用errorbar函数来添加误差。首先,你需要将数据分成不同的组,然后为每组数据创建一个柱状图。接下来,使用errorbar函数为每个柱状图添加误差误差可以表示数据的标准差、标准误差或置信区间等。最后,你可以设置柱状图的标签、标题和例等属性来使表更加清晰和可读。 以下是绘制误差柱状图的一般步骤: 1. 导入必要的库,如Matplotlib和Numpy。 2. 准备数据,并将其分成不同的组。 3. 创建柱状图,使用bar函数并设置柱状图的位置和宽度。 4. 计算每组数据的误差,并使用errorbar函数添加误差。 5. 设置柱状图的标签、标题和例等属性。 6. 显示表,使用show函数。 通过以上步骤,你就可以在Python绘制误差柱状图了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python干货:教你Python如何一文你学会去用Python生成误差的并列和堆积柱状图?!](https://blog.csdn.net/Python_xiaobang/article/details/112240021)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

群智能算法小狂人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值