如何在matlab中绘制彩色一维直方图

How to draw a colorful 1D histogram in matlab

我有一个包含相关系数统计数据的一维数组X,我想绘制一个彩色直方图。我使用以下代码:

histogram(X,10)

它可以创建一个单一颜色的直方图,现在我想绘制一个直方图,每个条形图都有不同的颜色。但是'FaceColor'选项只能调整整个plot的总颜色。谁能告诉我如何实现?

您对 histogram 对象没有那种级别的控制,而是必须使用 bar 绘图,其中每个条形的高度最好使用 histcounts.

[h,edges] = histcounts(x,10); % calculate the histogram data
b = bar( (edges(1:end-1)+edges(2:end))/2, h ); % plot the bar chart
b.BarWidth = 1; % make the bars full width to look the same as 'histogram'
b.CData = parula( 10 ); % generate colours as a 10x3 array (columns are RGB), can 
                        % do this manually if you want
b.FaceColor = 'flat';   % Make 'bar' use the CData colours