主页 > 电脑硬件  > 

自定义正态分布区间划分与可视化

自定义正态分布区间划分与可视化
引言

正态分布在统计学和数据分析中扮演着至关重要的角色。许多自然现象,如身高、智商、市场需求等,都符合正态分布。在实际应用中,我们通常希望对数据进行区间划分,以便更好地理解其分布情况。例如,在创新扩散理论中,市场用户可以根据采用新技术的时间划分为不同群体。

本文通过 MATLAB 绘制 正态分布曲线,并自定义 五个区间 进行颜色填充,以直观展示不同群体的分布情况。

1. 正态分布的定义

正态分布的概率密度函数(PDF)定义如下:

% 参数设置 mu = 0; % 均值 sigma = 1; % 标准差 x = linspace(mu - 4*sigma, mu + 3*sigma, 1000); % 生成 x 值 y = normpdf(x, mu, sigma); % 计算正态分布概率密度函数 2. 自定义区间划分

为了更好地可视化,我们将正态分布划分为 五个区间,并使用不同颜色填充:

创新者(Innovators):小于 −3.5σ早期使用者(Early Adopters):−3.5σ 到 −2σ早期大多数(Early Majority):−2σ 到 0σ晚期大多数(Late Majority):0σ 到 2σ落后者(Laggards):大于 2σ 3. 绘制正态分布曲线

使用 plot 绘制 正态分布曲线。

4. 填充颜色

遍历 每个区间,填充相应颜色。

% 为每个区间填充颜色 for i = 1:length(edges)-1 x_range = x(x >= edges(i) & x <= edges(i+1)); % 选取区间内 x 值 y_range = y(x >= edges(i) & x <= edges(i+1)); % 选取对应 y 值 % 绘制填充区域 fill([x_range, fliplr(x_range)], [y_range, zeros(1, length(y_range))], ... colors{i}, 'EdgeColor', 'none', 'FaceAlpha', 0.6); end 5. 图形美化

为了让图表更加美观,我们:

隐藏坐标轴移除边框关闭网格设置标题matlab代码: % 参数设置 mu = 0; % 均值 sigma = 1; % 标准差 x = linspace(mu - 4*sigma, mu + 3*sigma, 1000); % 生成x值 y = normpdf(x, mu, sigma); % 计算正态分布概率密度函数 % 自定义分界点(均值前3段,均值后2段,越靠近均值区间越长) edges = [-4, -3.5, -2, 0, 2, 4]; % 分界点设置 % 定义五种颜色(RGB格式) colors = {... [250, 215, 183]/255, ... % 浅绿色 [243, 181, 171]/255, ... % 浅蓝色 [238, 156, 163]/255, ... % 浅黄色 [231, 128, 158]/255,... [211, 110, 158]/255}; % 浅紫色 % 创建图形 figure; hold on; plot(x, y, 'k', 'LineWidth', 2); % 绘制黑色曲线 % 为每个区间填充颜色 for i = 1:length(edges)-1 x_range = x(x >= edges(i) & x <= edges(i+1)); % 区间内x值 y_range = y(x >= edges(i) & x <= edges(i+1)); % 对应y值 % 绘制填充区域 fill([x_range, fliplr(x_range)], [y_range, zeros(1,length(y_range))], ... colors{i}, 'EdgeColor', 'none', 'FaceAlpha', 0.6); end % 美化图形设置 set(gca, 'XTick', [], 'YTick', []); % 隐藏坐标数值 set(gca, 'XColor', 'none', 'YColor', 'none'); % 隐藏坐标轴线 box off; % 移除边框 grid off; % 关闭网格 title('Custom Normal Distribution Segmentation', 'FontSize', 12, 'FontWeight', 'bold') % 添加图例 legend_labels = {'创新者', '早期使用者', '早期大多数', ... '晚期大多数', '落后者'}; h = zeros(5,1); for i = 1:5 h(i) = fill(NaN, NaN, colors{i}, 'DisplayName', legend_labels{i}); end legend(h, 'Location', 'northeast', 'Box', 'off');

标签:

自定义正态分布区间划分与可视化由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“自定义正态分布区间划分与可视化