![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/381638/image.png)
How to correspond line colors with histogram
6 ビュー (過去 30 日間)
古いコメントを表示
I made these overlapping histograms using a for loop. I'm trying to get the lines in the same color as the histograms. Does anybody know how to do this?
[~,ErrorLength]= size(out);
for i =1:ErrorLength
hold on
m = histogram(out(:,i),'normalization','pdf');
f = fitdist(out(:,i),'kernel');
hoi = pdf(f,x);
l = line(x,hoi,'linestyle','-','linewidth',2);
hold off
end
xlabel('Orientation');
ylabel('Error rate');
legend('Target 1','','Target 2','','Target 3','','Target 4','')
0 件のコメント
採用された回答
Star Strider
2020 年 10 月 15 日
編集済み: Star Strider
2020 年 10 月 15 日
The FaceColor property of the bars is 'auto', so if you want the colors to be the same, it is necessary to define them:
out = randn(500,3).*[10 20 30]; % Create Data To Test Code
x = linspace(-80, 80); % Create Data To Test Code
cm = jet(size(out,2)); % Define ‘colormap’
[~,ErrorLength]= size(out);
for i =1:ErrorLength
hold on
m = histogram(out(:,i),'normalization','pdf')
m.FaceColor = cm(i,:); % Define ‘FaceColor’
f = fitdist(out(:,i),'kernel');
hoi = pdf(f,x);
l = line(x,hoi,'linestyle','-','linewidth',2, 'Color',cm(i,:)); % Define Line ‘Color’
hold off
end
xlabel('Orientation');
ylabel('Error rate');
legend('Target 1','','Target 2','','Target 3','','Target 4','')
You will need to fix the problem with the legend.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/381638/image.png)
EDIT — (15 Oct 2020 at 12:17)
Added ‘out’ and ‘x’ definitions.
8 件のコメント
Star Strider
2020 年 10 月 15 日
As always, my pleasure!
It worked for me with both. I used {} (cell array) to be safe.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Data Distribution Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!