欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > 手搓箱图并输出异常值(MATLAB)

手搓箱图并输出异常值(MATLAB)

2025/4/29 21:47:23 来源:https://blog.csdn.net/xyhxx99499/article/details/147477088  浏览:    关键词:手搓箱图并输出异常值(MATLAB)

看下需求

想要复刻这种箱图,咱们直接开始手搓

%% 可修改
% 生成模拟数据(假设5个用户群体的发帖数)
data = {randn(100,1)*10 + 30, ...   % 核心用户randn(200,1)*5 + 10, ...    % 边缘用户randn(150,1)*8 + 20, ...    % 积极社交用户randn(80,1)*12 + 25, ...    % 潜在创意用户randn(120,1)*6 + 15};       % 积极创新用户
groups = {'用户等级','发布的贴子数','发帖频率','点度中心度','提案数'};%%
% 合成用于 boxplot 的向量
allData = vertcat(data{:});
groupIdx = [ones(100,1);2*ones(200,1);3*ones(150,1);4*ones(80,1);5*ones(120,1)];% 绘制箱图
figure;
boxplot(allData, groupIdx, 'Labels', groups);
title('分布箱图(含异常值)');
ylabel('数值');
grid on;% 识别并显示各组的异常值
for i = 1:numel(data)d = data{i};Q1 = prctile(d, 25);Q3 = prctile(d, 75);IQR = Q3 - Q1;lowerFence = Q1 - 1.5 * IQR;upperFence = Q3 + 1.5 * IQR;outliers = d(d < lowerFence | d > upperFence);if isempty(outliers)fprintf('组 “%s” 无异常值。\n', groups{i});elsefprintf('组 “%s” 的异常值 (%d 个):\n', groups{i}, numel(outliers));disp(outliers');end
end

小伙伴们可根据需要修改上方的数据

看下效果

Over!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词