在R中基于气温距平数据绘制3D核密度图的方法咨询
用
ksdensity绘制3D核密度图的实现方案 数据预处理
- 将1991-2021年逐小时气温距平数据整理为两个一维向量:
x:每个数据点对应的年份(逐小时数据需对应所属年份)y:每个数据点对应的气温距平值
核心代码实现
1. 计算二维核密度估计
调用ksdensity计算二维密度分布,生成网格点与对应密度值:
% 假设x为年份向量,y为气温距平向量 [f, xi, yi] = ksdensity([x, y]); % 将一维密度结果转为适配3D绘图的矩阵格式 F = reshape(f, length(xi), length(yi));
2. 绘制3D核密度图
使用surf函数生成3D曲面图,也可替换为mesh等其他3D绘图函数:
figure surf(xi, yi, F') xlabel('年份') ylabel('气温距平值') zlabel('密度值') title('1991-2021年逐小时气温距平3D核密度图') shading interp % 可选,优化曲面平滑度 colorbar % 显示密度色标,辅助解读
补充说明
- 若数据存储在表格文件中,可先通过
readtable读取并提取列向量:data = readtable('你的数据文件路径'); x = data.年份列名; % 替换为实际列名 y = data.距平列名; % 替换为实际列名 - 如需调整核密度的平滑程度,可在
ksdensity中添加'Bandwidth'参数自定义带宽,例如:[f, xi, yi] = ksdensity([x, y], 'Bandwidth', [0.8, 0.3]);
内容的提问来源于stack exchange,提问作者Jimin Eom
相关产品推荐
相关产品推荐

