如何在MATLAB中绘制多重叠折线的热力图及均值、中位数、众数曲线?
温度剖面数据的量化可视化(Matlab实现)
我有300组温度随海拔变化的剖面数据,不想只用普通折线图展示,希望用更具量化性的可视化方式。我发现下图的效果很实用,想实现这种样式,同时还要在图中添加温度的均值、中位数以及众数曲线。

实现方案
通过计算每个海拔高度的统计量(分位数、均值、中位数、众数),用填充区间展示数据分布范围,叠加关键统计曲线实现量化可视化,以下是完整Matlab代码:
% 生成示例数据 numProfiles = 300; % 温度剖面数量 numAltitudes = 101; % 海拔点数(0km到100km,步长1km) altitude = 0:1:100; % 海拔值(单位:km) temperatures = zeros(numAltitudes, numProfiles); % 生成带分段波动的温度数据 baseTemperature = 200 + altitude' * 3; % 基准温度剖面 for i = 1:numProfiles variation = zeros(numAltitudes, 1); % 不同海拔区间设置不同波动幅度 for j = 1:numAltitudes if altitude(j) < 20 variation(j) = randn * 50; % 大波动 elseif altitude(j) < 50 variation(j) = randn * 10; % 中波动 elseif altitude(j) < 70 variation(j) = randn * 3; % 小波动 else variation(j) = randn * 1; % 极小波动 end end temperatures(:, i) = baseTemperature + variation; end % ========== 计算统计量 ========== temp_mean = mean(temperatures, 2); % 各海拔温度均值 temp_median = median(temperatures, 2); % 各海拔温度中位数 temp_mode = mode(temperatures, 2); % 各海拔温度众数 % 计算分位数:5%、25%、75%、95%,用于绘制波动区间 temp_prctile = prctile(temperatures, [5,25,75,95], 2); p5 = temp_prctile(:,1); p25 = temp_prctile(:,2); p75 = temp_prctile(:,3); p95 = temp_prctile(:,4); % ========== 绘制量化可视化图 ========== figure('Color','w'); hold on; box on; % 绘制外层波动区间(5%-95%分位数),半透明浅灰色 fill([p95; flipud(p5)], [altitude; flipud(altitude)], [0.9,0.9,0.9], 'FaceAlpha',0.3, 'EdgeColor','none'); % 绘制内层波动区间(25%-75%分位数),半透明深灰色 fill([p75; flipud(p25)], [altitude; flipud(altitude)], [0.7,0.7,0.7], 'FaceAlpha',0.5, 'EdgeColor','none'); % 绘制统计曲线 plot(temp_mean, altitude, 'r-', 'LineWidth',2, 'DisplayName','均值'); plot(temp_median, altitude, 'b--', 'LineWidth',2, 'DisplayName','中位数'); plot(temp_mode, altitude, 'g-.', 'LineWidth',2, 'DisplayName','众数'); % 设置图属性 xlabel('温度'); ylabel('海拔(km)'); title('温度剖面量化可视化'); legend('Location','best'); set(gca, 'YDir','reverse'); % 反转Y轴,让海拔从低到高显示
关键说明
- 区间填充:用
prctile计算分位数,通过fill绘制半透明区间,直观展示不同海拔温度的分布离散程度,内层25%-75%分位数代表数据的核心分布,外层5%-95%代表整体波动范围 - 统计曲线:用不同颜色、线型区分均值、中位数、众数,清晰展示数据的集中趋势
- 坐标轴优化:反转Y轴方向,符合海拔从地面(0km)到高空(100km)的常规展示逻辑
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

