You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab中在同一图绘制多组三维数据的PDF曲线求助

MATLAB三维数据各维度PDF绘制与测试数据生成

生成可复现的三维测试数据

固定随机数种子确保每次运行得到相同数据,模拟纬度、经度、时间三个维度的典型分布:

% 固定随机种子,保证结果可复现
rng(42); 

% 生成各维度数据:纬度(正态分布)、经度(均匀分布)、时间(泊松分布)
lat_data = randn(100, 100, 50) * 5 + 30;  % 均值30,标准差5的纬度数据
lon_data = rand(100, 100, 50) * 60 - 120; % 范围-120~-60的经度数据
time_data = poissrnd(10, 100, 100, 50);   % 均值10的时间序列数据

提取各维度数据并计算PDF

将三维数据展平为一维数组,使用ksdensity()生成连续的概率密度函数(PDF)曲线:

% 展平各维度数据为一维数组
lat_flat = lat_data(:);
lon_flat = lon_data(:);
time_flat = time_data(:);

% 计算每个维度的PDF及对应横坐标
[pdf_lat, x_lat] = ksdensity(lat_flat);
[pdf_lon, x_lon] = ksdensity(lon_flat);
[pdf_time, x_time] = ksdensity(time_flat);

在同一图中绘制所有PDF曲线

利用hold on保持绘图窗口,叠加三条曲线并添加标注:

figure;
% 绘制各维度PDF曲线,用不同线型/颜色区分
plot(x_lat, pdf_lat, 'r-', 'LineWidth', 2);
hold on;
plot(x_lon, pdf_lon, 'b--', 'LineWidth', 2);
plot(x_time, pdf_time, 'g:', 'LineWidth', 2);

% 添加图例、标签与网格
legend('纬度PDF', '经度PDF', '时间PDF', 'Location', 'best');
xlabel('变量值');
ylabel('概率密度');
title('各维度数据的概率分布函数');
grid on;
hold off;

关于histogram与normplot的补充说明

  • 若想用直方图展示PDF,需设置归一化参数并调整透明度避免重叠:
figure;
histogram(lat_flat, 'Normalization', 'pdf', 'FaceColor', 'r', 'FaceAlpha', 0.3);
hold on;
histogram(lon_flat, 'Normalization', 'pdf', 'FaceColor', 'b', 'FaceAlpha', 0.3);
histogram(time_flat, 'Normalization', 'pdf', 'FaceColor', 'g', 'FaceAlpha', 0.3);
legend('纬度PDF直方图', '经度PDF直方图', '时间PDF直方图');
xlabel('变量值');
ylabel('概率密度');
grid on;
hold off;
  • normplot()是正态概率图,用于验证数据是否符合正态分布,并非生成PDF曲线,因此不满足你的需求。

内容的提问来源于stack exchange,提问作者jazz cat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 07:10:31