【Python画散点图】

Python读取excel表格中的两列数据画散点图,并将计算到的数据的相关系数和均方根误差计算标注出

为了使用Python读取Excel表格中的两列数据,绘制散点图,并计算并标注相关系数(Pearson Correlation Coefficient)和均方根误差(Root Mean Square Error, RMSE),你可以使用pandas库来读取Excel文件,matplotlib库来绘制散点图,以及numpyscipy库来计算相关系数和RMSE。

以下是一个完整的示例代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import pearsonr
from sklearn.metrics import mean_squared_error

# 读取Excel文件
# 假设Excel文件名为'data.xlsx',并且我们感兴趣的两列数据分别位于第一列和第二列,列名分别为'Column1'和'Column2'
file_path = 'data.xlsx'
data = pd.read_excel(file_path)

# 提取两列数据
x = data['Column1'].values
y = data['Column2'].values

# 计算相关系数
corr, _ = pearsonr(x, y)

# 计算RMSE
rmse = np.sqrt(mean_squared_error(x, y))  # 注意:这里假设x是预期值,y是实际值,通常x和y的角色可能需要根据实际情况调整

# 绘制散点图
plt.figure(figsize=(10, 6))
plt.scatter(x, y, color='blue', alpha=0.5, label='Data Points')

# 添加相关系数和RMSE到图中
plt.text(0.02, 0.95, f'Correlation Coefficient: {corr:.2f}', transform=plt.gca().transAxes, fontsize=12, color='green')
plt.text(0.02, 0.90, f'RMSE: {rmse:.2f}', transform=plt.gca().transAxes, fontsize=12, color='red')

# 设置图例、标题和坐标轴标签
plt.legend()
plt.title('Scatter Plot with Correlation and RMSE')
plt.xlabel('Column1')
plt.ylabel('Column2')

# 显示图形
plt.grid(True)
plt.show()

注意

  1. 在上面的代码中,我假设了x(Column1)是预期值,y(Column2)是实际值,并据此计算了RMSE。然而,在实际应用中,你可能需要根据数据的具体情况来调整xy的角色。
  2. 如果你的Excel文件中列名不是’Column1’和’Column2’,你需要将代码中的这些字符串替换为你的实际列名。
  3. plt.text()函数用于在图形上添加文本,其中transform=plt.gca().transAxes参数使得文本位置相对于整个图形的轴(axes)进行定位,而不是相对于图形的坐标系统。这样可以确保文本在图形缩放时保持在相同的位置。
  4. plt.grid(True)用于在图形上显示网格线,这有助于更好地观察数据点的分布。你可以根据需要调整或移除这一行代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值