You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab中在fitlm生成的图形标题中添加带上角标r²值的问题求助

Matlab中在fitlm生成的图形标题中添加带上角标r²值的问题求助

嘿,我来帮你搞定这个问题!你遇到的情况我之前做线性建模可视化时也碰过——想把fitlm输出的R²值(2得是上标)加到图标题里,结果照着文档写的代码没达到效果,对吧?下面给你一步步捋清楚解决方案:

第一步:补全数据处理与线性模型拟合

先把你生成的两个簇数据合并,再用fitlm拟合模型,同时提取出我们需要的R²值:

% 合并两个簇的数据集
T = [Tclust1; Tclust2];
% 拟合线性模型(这里以y1为因变量、x1为自变量为例,可根据需求调整公式)
lm_model = fitlm(T, 'y1 ~ x1');
% 提取普通R²值(如果需要调整后的R²,改用 lm_model.Rsquared.Adjusted)
r_squared = lm_model.Rsquared.Ordinary;

第二步:两种方法实现带上角标的标题

Matlab里给文本加角标有两种常用的靠谱方式,你可以任选其一:

方法1:用TeX标记生成上标(Matlab图形默认支持)

Matlab的标题、坐标轴标签等文本对象默认支持TeX格式,用上标符号^就能把后面的字符变成上标,配合sprintf把数值和文本组合起来就搞定了:

% 绘制散点图+拟合线
scatter(T.x1, T.y1, 'filled', 'Alpha', 0.6);
hold on;
% 绘制拟合的回归线
plot(T.x1, lm_model.Fitted, 'r-', 'LineWidth', 1.5);
hold off;

% 设置带R²上标的标题,Interpreter参数确保TeX格式生效
title(sprintf('散点图与线性拟合 (r^2 = %.2f)', r_squared), 'Interpreter', 'TeX');

这里%.2f是保留两位小数,你可以改成%.3f或%.4f来调整精度。

方法2:直接用Unicode上标字符(更直观)

如果你觉得TeX标记有点麻烦,直接用Unicode的²字符就行,不用管解释器,代码更简洁:

% 绘图部分和上面一致,标题换成下面的写法
title(sprintf('散点图与线性拟合 (r² = %.2f)', r_squared));

这个方法在Matlab R2016及以后的版本都完美支持,显示效果和TeX方法完全一致。

为什么你之前的方法可能失效?

大概率是这两个原因:

  • 没正确提取R²值:fitlm的模型对象里,R²存在Rsquared.Ordinary或Rsquared.Adjusted属性里,别用错了属性名
  • 没正确设置上标格式:如果只是直接把r2和数值拼在一起,Matlab只会把它当成普通文本,必须用^(TeX模式)或者Unicode²才能让2变成上标

额外:给每个簇单独拟合加标题的示例

如果你是想给两个簇分别拟合并加标题,代码可以这么写:

% 处理第一个簇
lm_clust1 = fitlm(Tclust1, 'y1 ~ x1');
r2_clust1 = lm_clust1.Rsquared.Ordinary;

figure('Name','簇1拟合结果');
scatter(Tclust1.x1, Tclust1.y1, 'filled');
hold on;
plot(Tclust1.x1, lm_clust1.Fitted, 'r-');
title(sprintf('簇1线性拟合 (r^2 = %.2f)', r2_clust1), 'Interpreter', 'TeX');
hold off;

% 处理第二个簇
lm_clust2 = fitlm(Tclust2, 'y2 ~ x2');
r2_clust2 = lm_clust2.Rsquared.Ordinary;

figure('Name','簇2拟合结果');
scatter(Tclust2.x2, Tclust2.y2, 'filled');
hold on;
plot(Tclust2.x2, lm_clust2.Fitted, 'r-');
title(sprintf('簇2线性拟合 (r^2 = %.2f)', r2_clust2), 'Interpreter', 'TeX');
hold off;

备注:内容来源于stack exchange,提问作者user2587726

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 15:05:31