python科研绘图:左上角RMSE,右下角R2,并画出双色带

该博客介绍了如何使用Python进行科研绘图,特别是如何创建一个包含右上角RMSE和左下角R2指标的双色矩阵图。示例代码展示了如何生成随机数据并用matplotlib库绘制图像,同时添加颜色条和坐标标签,最后保存为PDF文件。
摘要由CSDN通过智能技术生成

python科研绘图:右上角RMSE,左下角R2,并画出双色带

1.结果图

在这里插入图片描述

2.直接上代码

import numpy as np
import matplotlib.pyplot as plt
import random
#自己做的数据,可自行调整
label1=[‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘h’]
arr1=np.zeros((len(label1),len(label1)))*np.nan
arr2=np.zeros((len(label1),len(label1)))*np.nan
for i in range(1,len(label1)+1):
for j in range(i):
if i-1==j:continue
arr1[i-1,j]=random.random()
arr2[j,i-1]=random.random()*10

#绘图部分
fig = plt.figure(figsize=(5,5),dpi=600)# #(宽,高)
ax = fig.add_subplot(111)
ax.xaxis.tick_top()
im1=plt.imshow(arr1,vmin=0, vmax=1, cmap=‘summer_r’)
im2=plt.imshow(arr2,vmin=0, vmax=10,cmap=‘autumn_r’)
plt.colorbar(im2,shrink=0.7,spacing=‘uniform’,pad=0.01,aspect=12,ax=ax)#
plt.colorbar(im1,shrink=0.7,spacing=‘uniform’,pad=0.01,aspect=12,ax=ax,orientation=‘horizontal’)#
plt.xticks(range(8), labels=label1)#,rotation=330(如果文字比较长可以旋转一下)
plt.yticks(range(8), labels=label1)
plt.savefig(‘temp.pdf’)
plt.show()
plt.close()

Python中,我们可以使用`scikit-learn`库中的`LinearRegression`模型(对于简单的线性回归)或更专业的`sklearn.neural_networks.MLPRegressor`(多层感知器,用于非线性预测)来实现基础的BP(Backpropagation)神经网络。然而,如果你想要自定义BP神经网络,你可以选择使用`Keras`或`PyTorch`这样的深度学习框架。 以下是一个简单的例子,演示如何使用`MLPRegressor`实现一个基本的BP神经网络并计算所需的评价指标: ```python from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error, mean_absolute_percentage_error import numpy as np # 假设我们有数据集X和y X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 数据预处理 scaler = StandardScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test) # 创建神经网络模型 from sklearn.neural_network import MLPRegressor nn_model = MLPRegressor(hidden_layer_sizes=(100,), activation='relu', solver='adam', max_iter=500) # 训练模型 nn_model.fit(X_train, y_train) # 预测 y_pred = nn_model.predict(X_test) # 计算评价指标 r2 = r2_score(y_test, y_pred) rmse = np.sqrt(mean_squared_error(y_test, y_pred)) mse = mean_squared_error(y_test, y_pred) mape = mean_absolute_percentage_error(y_test, y_pred) mae = mean_absolute_error(y_test, y_pred) print(f"R2 Score: {r2}") print(f"RMSE: {rmse}") print(f"MSE: {mse}") print(f"MAPE: {mape}") print(f"MAE: {mae}") #
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值