在之前的文章中,分享过Matlab密度散点图的绘制方法:
此版内容用到了一些点云数据处理中求取密度的知识,对部分人来说,可能有些不好理解。
于是,本期内容使用Matlab自带的ksdensity函数进行密度散点图(概率密度版)的绘制,先来看一下成品效果:
顺带一提,第二个图看起来和第一个不同,是因为用的默认带宽bandwidth参数(对应第一个的半径参数),改一改的话,其实差不多。
所以哪个好理解选哪个吧。
特别提示:本期内容『数据+代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以关注同名公号【阿昆的科研日常】,后台回复关键词【绘图桶】查看加入方式。
1. 数据准备
此部分主要是读取原始数据并初始化绘图参数。
% 读取数据
load data.mat
% 初始化绘图参数
data = [x,y];
% 计算概率密度
density_2D = ksdensity([data(:,1),data(:,2)],[data(:,1),data(:,2)]);
2. 颜色定义
作图不配色就好比做菜不放盐,总让人感觉少些味道。
但颜色搭配比较考验个人审美,需要多加尝试。
这里直接使用TheColor配色工具中的SCI权威配色库:
map = TheColor('sci',2097);
% map = flipud(map);
3. 密度散点图(概率密度版)绘制
调用‘scatter’命令,绘制初始密度散点图。
scatter(data(:,1), data(:,2), 5, density_2D, 'filled')
hTitle = title('Satellite-derived bathymetry');
hXLabel = xlabel('ICESat-2 bathymetric points in depth (m)');
hYLabel = ylabel('Estimated depth (m)');
然后再对一些细节进行修饰,并输出保存:
以上。