Похоже, вы получили желаемый результат, за исключением легенды и маркеров. Если вам нужен больший контроль над функциями построения, я бы предложил получить необходимые элементы для построения графика из ksdensity
, используя [f,xi] = ksdensity(x)
, а затем нанести график отдельно.
% MATLAB R2019a
% Example Data
X = wblrnd(2,3,10000,1);
Y = wblrnd(3,2,10000,1);
Z = wblrnd(2.5,2.5,10000,1);
Data = [X Y Z];
NumPointCDF = 5; % Number of points to estimate CDF with
figure, hold on
for ii = 1:size(Data,2) % for each column of Data
[fii, xii] = ksdensity(Data(:,ii),'Support','positive','Function','cdf',...
'NumPoints',NumPointsCDF);
p(ii) = plot(xii,fii,'LineWidth',1.1,'Marker','.','MarkerSize',12);
end
legend('X','Y','Z')
В качестве альтернативы, вы можете просто построить каждый первый,
figure, hold on
for ii = 1:size(Data,2) % for each column of Data
[fii, xii] = ksdensity(Data(:,ii),'Support','positive','Function','cdf',...
'NumPoints',NumPointsCDF);
p(ii) = plot(xii,fii);
end
, а затем изменить свойства каждой линиипозже с p(1).foo
(см. здесь).
Например, по одному: p(1).Marker = 's' % square
Или все сразу:
for ii = 1:size(Data,2)
p(ii).Marker = '.'; % Adjust specific properties of p(ii) as needed
p(ii).LineWidth = 1.2;
end
Ссылка:
1. Свойства графического объекта
2. Доступ к значениям свойства