出图
导入包并且设置文字格式,要求是中文为黑体,英文字体改成和Times New Roman相似的stix
import matplotlib.pyplot as plt
from matplotlib import rcParams
# 画图字体的修改
config = {
"font.family":'serif',
"font.size": 12,
"mathtext.fontset":'stix',
"font.serif": ['SimSun'],
}
rcParams.update(config)
plt.rcParams["font.sans-serif"] = ["SimHei"]
首先是图中各项指标,在输出的时候就转化为LaTeX字符格式,后续输出的时候直接就是宋体格式
# 先求出数据指标 并进行文本文字编辑
r2 = r'$\mathrm{R^2='+str(r2_score(Y_pred,Y).round(k))+'}$'
mse = r'$\mathrm{MSE='+str(mean_squared_error(Y_pred,Y).round(k))+'}$'
pre = r'$\mathrm{PRE='+str("%.2f" % PRE(Y_pred,Y))+'}$'+'%'
N = r'$\mathrm{N='+str(len(Y))+'}$'
画图设置横纵坐标文字格式以及标题格式,上标是 ^ 下标是 _,需要注意采用mathrm输出的文字需要用{}括起来,采用_^标记的上下标也要括起来格式基本上为,因为中文不需要设置的stix格式,因此直接输出在mathrm外面
$\mathrm{xxxxx}$xxxx
# 画图
fig,ax = plt.subplots()
ax.set_xlabel(r'$\mathrm{PM_{2.5}}$真实值/'+'$\mathrm{(μg·m^{-3})}$')
ax.set_ylabel(r'$\mathrm{PM_{2.5}}$预测值/'+'$\mathrm{(μg·m^{-3})}$')
ax.set_title(r'$\mathrm{'+str(model)+'}$')
这里设置文本的位置需要不断调试
# 设置文本
fig.text(.16,.85,func,horizontalalignment='left',verticalalignment='top')
fig.text(.16,.80,r2,horizontalalignment='left',verticalalignment='top')
fig.text(.16,.75,mse,horizontalalignment='left',verticalalignment='top')
fig.text(.16,.70,pre,horizontalalignment='left',verticalalignment='top')
fig.text(.16,.65,N,horizontalalignment='left',verticalalignment='top')
显示图像
# 显示图像
plt.show()
完成!