用Python的matplotlib绘制残差分析散点误差棒图

本文介绍了一篇关于使用Python进行残差误差棒图的绘制过程,包括数据读取、根据A值分段并计算各段的均值和标准差,以及最后的图表展示。作者详细展示了如何利用matplotlib库创建散点图和误差棒图,并对残差进行了分段统计分析。
摘要由CSDN通过智能技术生成


前言

残差误差棒图是残差分析中必不可少的图,下面我将介绍一下我画的残差散点图
话不多说先上图:

一、数据读取

import numpy as np
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt

data = pd.read_excel('残差分析数据.xlsx', engine='openpyxl')
print(data)
A = data['A']
r_inter = data['r_inter']
r_intra = data['r_intra']

二、数据分段

根据横坐标A将残差数据分段,计算不同段的均值和标准差

1.数据分段

r_intra2 = []
r_intra3 = []
r_intra4 = []
r_intra5 = []
r_intra6 = []
r_intra7 = []
r_intra8 = []
for i in range(len(r_intra)):
    if 0<=A[i]<50:
        r_intra1.append(r_intra[i])
    elif 50<=A[i]<100:
        r_intra2.append(r_intra[i])
    elif 100 <= A[i] < 150:
        r_intra3.append(r_intra[i])
    elif 150 <=A[i] < 200:
        r_intra4.append(r_intra[i])
    elif 200 <= A[i] < 250:
        r_intra5.append(r_intra[i])
    elif 250 <= A[i] < 300:
        r_intra6.append(r_intra[i])
    elif 300 <= A[i] < 350:
        r_intra7.append(r_intra[i])
    elif 350 <= A[i] < 400:
        r_intra8.append(r_intra[i])
 

2.计算均值和标准差

def mean_std(residual):
    m = np.mean(residual)
    s = np.std(residual)
    return m, s
m1, s1 = mean_std(r_intra1)
m2, s2 = mean_std(r_intra2)
m3, s3 = mean_std(r_intra3)
m4, s4 = mean_std(r_intra4)
m5, s5 = mean_std(r_intra5)
m6, s6 = mean_std(r_intra6)
m7, s7 = mean_std(r_intra7)
m8, s8 = mean_std(r_intra8)

三、画图

fig = plt.figure(figsize=(5, 4))
plt.rcParams['xtick.direction'] = 'in'  # 将x周的刻度线方向设置向内
plt.rcParams['ytick.direction'] = 'in'  # 将y轴的刻度方向设置向内
plt.rcParams['font.family'] = ["Times New Roman"] # 字体设置为Times NewRoman
plt.scatter(A, r_intra, c='none', edgecolors='gray', alpha=0.8) 
# 画散点图, c表示填充数据颜色,edgecolors表示散点外圈颜色, alpha表示透明度(0-1)
plt.errorbar([25, 75, 125, 175, 225, 275, 325, 375], [m1, m2, m3, m4, m5, m6, m7, m8],
             yerr=[s1, s2, s3, s4, s5, s6, s7, s8], fmt='s-', ecolor='black', color='red',
             elinewidth=2.5, capsize=5)
# 绘制数据的误差置信区间图,前三个list分别表示:误差棒的位置,均值,方差,其余参数解释见matplotlib官网在这里插入代码片`
plt.xlabel('A (unit)', size=12)
plt.ylabel('Intra-event Residual', fontsize=12)
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)
# plt.text(250, 3.2, 'SA(T=10s)', fontsize=14)
plt.grid(linewidth=0.5, linestyle='--', which='both', alpha=0.5, zorder=0)
#绘制网格线
plt.ylim(-6, 4)
# plt.tight_layout()
# plt.show()
plt.savefig('Figure_residual.png', dpi=300)

最终生成的结果见上图

  • 8
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: PythonMatplotlib库可以用来绘制散点散点是一种用于显示两个变量之间关系的表,其中每个点表示一个数据点。要绘制散点,需要使用Matplotlib的scatter()函数。该函数需要传入两个参数,分别是x和y轴的数据。例如,以下代码可以绘制一个简单的散点: ```python import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] plt.scatter(x, y) plt.show() ``` 这段代码将会在屏幕上显示一个散点,其中x轴表示1到5的整数,y轴表示2到10的整数。每个点的位置表示x和y轴上的值。 ### 回答2: Python中的matplotlib库是一个强大的绘工具,可用于绘制各种类型的表,包括散点散点是一种直观的数据展示方式,可以用于分析两个变量之间的关系,例如展示身高和体重之间的相关性等。 在此之前,我们需要导入matplotlib库,具体方法是在脚本或交互式环境中输入以下代码: import matplotlib.pyplot as plt 接下来,我们来看一下如何绘制散点。首先,我们需要准备数据。在这里,我们将使用numpy库生成一组随机数据。 import numpy as np x = np.random.randn(100) #生成100个随机数 y = np.random.randn(100) #生成100个随机数 接下来,我们可以使用matplotlib库中的scatter()函数来绘制散点。该函数需要两个参数:x轴和y轴上的数据,可以通过以下方式来绘制: plt.scatter(x, y) plt.show() 此时,我们就可以在形界面中看到一个散点了。我们还可以根据需求设置一些属性,例如颜色、大小、标记等。以下是具体的代码和作用: plt.scatter(x, y, c='red', s=30, marker='o') #c指定颜色为红色,s指定大小为30,marker表示标记类型为圆形 plt.xlabel('X-axis') #设置x轴标签 plt.ylabel('Y-axis') #设置y轴标签 plt.title('Scatter Plot') #设置表标题 plt.show() 除了基本的绘功能,matplotlib库还提供了丰富的扩展功能,例如添加子、设置坐标轴范围、保存像等。总之,matplotlib是一个强大的可视化工具,可以满足不同需求的数据展示和分析。 ### 回答3: Python是一种流行的编程语言,matplotlib则是一个广受欢迎的绘库,它可以用来绘制不同类型的形,包括散点散点是一个二维坐标系中的形,它通过在坐标系中绘制数据点来显示数据之间的关系。Python中的matplotlib库可以方便地绘制散点,让我们来看看如何实现。 在使用matplotlib之前,需要安装该库。可以使用pip命令在命令行终端中安装matplotlib。安装步骤如下: ```python pip install matplotlib ``` 在安装完成之后,我们可以新建一个Python文件,来绘制散点。以下是用matplotlib绘制散点的基本步骤: 1. 引入matplotlib模块 这是使用matplotlib的第一步。它告诉Python我们要用这个模块来绘。 ```python import matplotlib.pyplot as plt ``` 2. 给出数据 散点的核心是数据,我们需要给出要绘制的数据。可以使用Python中的列表或数组来表示数据。以下是一些示例数据: ```python x = [1, 2, 3, 4, 5] y = [10, 20, 30, 40, 50] ``` 这里给出了两个列表x和y,它们分别表示横坐标和纵坐标数据,共有5个数据点。 3. 绘制散点 我们需要使用plt.scatter函数来绘制散点。以下是绘制一个散点的代码: ```python import matplotlib.pyplot as plt # 数据 x = [1, 2, 3, 4, 5] y = [10, 20, 30, 40, 50] # 绘制散点 plt.scatter(x, y) # 显示形 plt.show() ``` 这个代码将产生如下形: ![matplotlib_scatter_plot1.png](https://cdn.jsdelivr.net/gh/stevenli91748/nlp/image/matplotlib_scatter_plot1.png) 我们可以看到,matplotlib绘制了5个数据点,每个点的横坐标和纵坐标都对应列表x和y中的数据。 4. 设置散点的样式 我们可以使用plt.scatter函数的参数来设置散点的样式,如点的大小、颜色、样式等等。以下是一些示例代码: ```python import matplotlib.pyplot as plt # 数据 x = [1, 2, 3, 4, 5] y = [10, 20, 30, 40, 50] # 绘制散点 plt.scatter(x, y, s=100, c='blue', marker='^') # 显示形 plt.show() ``` 这个代码将产生如下形: ![matplotlib_scatter_plot2.png](https://cdn.jsdelivr.net/gh/stevenli91748/nlp/image/matplotlib_scatter_plot2.png) 我们可以看到,散点的点的大小变大了,颜色变为了蓝色,样式变为了三角形。这些属性可以通过s、c和marker参数来设置。 5. 添加标题和标签 我们也可以给散点添加标题和标签。以下是一些示例代码: ```python import matplotlib.pyplot as plt # 数据 x = [1, 2, 3, 4, 5] y = [10, 20, 30, 40, 50] # 绘制散点 plt.scatter(x, y) # 添加标题和标签 plt.title('Scatter Plot') plt.xlabel('X Values') plt.ylabel('Y Values') # 显示形 plt.show() ``` 这个代码将产生如下形: ![matplotlib_scatter_plot3.png](https://cdn.jsdelivr.net/gh/stevenli91748/nlp/image/matplotlib_scatter_plot3.png) 我们可以看到,散点上方有一个标题,横轴和纵轴也有标签,这些都是通过设置plt.title、plt.xlabel和plt.ylabel函数参数实现的。 绘制散点是使用matplotlib库的一个基本技能。通过上面的步骤,我们可以轻松地利用Python绘制出各种样式的散点
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值