如何在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
我有一个包含相关系数统计数据的一维数组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