首页 > 解决方案 > MATLAB - 绘制按类别分组的多个直方图

问题描述

我有一个样本数据,其中包含有关人体重的信息。我根据性别划分了这些数据,并绘制了按性别分组的箱线图:

箱形图

我通过以下代码实现了这一点:

function boxplotByGender(malesData, femalesData, overallData,...
                        graphName, figureLocation)

% group the samples by gender
grouping = [ones(size(malesData));
            2 * ones(size(femalesData));
            3 * ones(size(overallData))];

boxGraph = figure('Name', 'Box Plot', 'NumberTitle', 'off');
boxplot([malesData; femalesData; overallData], grouping);
title(graphName);
set(gca, 'XTickLabel', {'Males', 'Females', 'Both'});
movegui(boxGraph, figureLocation)

end

现在我想对直方图做同样的事情。有什么想法可以解决这个问题吗?

标签: matlabhistogrammatlab-figure

解决方案


怎么样:

hold on
histogram(overallData)
histogram(malesData)
histogram(femalesData)
hold off

这将在一个轴上绘制所有直方图,颜色为半透明,因此您可以看到所有直方图。您可以使用'FaceColor' 属性设置颜色,使其更有意义(例如,男性+女性=整体)。

使用默认颜色,它应该如下所示:

在此处输入图像描述


推荐阅读