问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

MATLAB绘制带密度编码的散点图示例

创作时间:
作者:
@小白创作中心

MATLAB绘制带密度编码的散点图示例

引用
CSDN
1.
https://blog.csdn.net/redmoise/article/details/146110977

本文将通过一个具体的MATLAB代码示例,展示如何生成带有密度编码的散点图。通过这个示例,读者可以学习到数据生成、概率密度计算、密度归一化以及图形修饰等关键步骤,从而掌握创建美观且信息丰富的散点图的方法。

% 生成示例数据(替换为你的数据)  
rng(42); % 固定随机种子  
X = randn(1500, 1);  
Y = 0.6*X + randn(size(X));  
% 计算每个数据点的概率密度  
data_points = [X, Y];  
bandwidth = 0.4; % 带宽参数  
density = ksdensity(data_points, data_points, 'Bandwidth', bandwidth);  
% 执行密度归一化(核心修改部分)  
density_normalized = (density - min(density)) / (max(density) - min(density));  
% 创建带密度编码的散点图  
figure;  
scatter(X, Y, 25, density_normalized, 'filled'); % 25控制点大小  
% 图形修饰  
colormap(jet(256)); % 使用彩虹色系  
c = colorbar;  
c.Label.String = '归一化密度'; % 设置颜色条标签  
caxis([0 1]); % 强制设置色带范围为[0,1]  
axis tight;  
grid on;  
xlabel('X坐标');  
ylabel('Y坐标');  
title('归一化密度编码散点图');  
% 验证归一化结果(可选)  
disp(['原始密度范围: [', num2str(min(density)), ', ', num2str(max(density)), ']'])  
disp(['归一化后范围: [', num2str(min(density_normalized)), ', ', num2str(max(density_normalized)), ']'])  

这段代码首先生成了一组示例数据,然后计算了每个数据点的概率密度,并对密度值进行了归一化处理。最后,通过scatter函数创建了一个带有密度编码的散点图,并对图形进行了详细的修饰,包括颜色条的设置、坐标轴标签等。通过这种方式,可以直观地展示数据点的分布密度,使散点图更具信息量和美观度。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号