添加2个直方图拟合线并更改颜色

时间:2014-10-14 20:51:37

标签: matlab colors histogram normal-distribution

我有以下代码:

% Histograms
histfit(S,40,'normal')
hold on;
hist(R,40,'normal')
g=findobj(gca,'Type','patch');
set(g(1),'FaceColor',[0 .5 .5],'EdgeColor','w')
set(g(2),'FaceColor',[0 1 1],'EdgeColor','w')
set(gca,'Fontsize',18,'Fontname','euclid')
xlabel('R & S')
hold off;

我只能为拟合线的第一个直方图添加一个。 我想更改第一个直方图的拟合线颜色,并添加和更改第二个直方图的拟合线颜色。

此致

1 个答案:

答案 0 :(得分:1)

你错过了对第二个直方图的histfit调用,所以该行根本没有出现。这是一个工作正常的示例代码。请注意我如何使用findobj获取实际行并更改其颜色:

rng default; % For reproducibility

%// Generate dummy data
S = normrnd(10,1,100,1);

R = 3*normrnd(10,1,100,1);

% Histograms
histfit(S,40,'normal')
hold on;
histfit(R,40,'normal')



%// Get the lines here
hLines = findobj('Type','Line')

set(hLines(1),'Color','k')
set(hLines(2),'Color','b')

g=findobj(gca,'Type','patch');
set(g(1),'FaceColor',[0 .5 .5],'EdgeColor','w')
set(g(2),'FaceColor',[0 1 1],'EdgeColor','w')
set(gca,'Fontsize',18,'Fontname','euclid')
xlabel('R & S')
hold off;

给出这个:

enter image description here