如何在MATLAB中从大型数据集生成CDF?

问题描述 投票:-1回答:1

我有6个数据集,每个数据集包含10000个条目。

我想绘制其CDF进行比较。

在MATLAB中,我使用以下代码:

figure()
ksdensity(dataset1,'Support','positive','Function','cdf',...
          'NumPoints',5)
xlabel('Error')
ylabel('CDF')

但是我不确定这是对还是错?我怎样才能做到这一点?

我得到下图。“这是我的示例图像,我也希望标记点”>

matlab plot figure cdf
1个回答
0
投票

除了图例和标记外,您似乎已获得所需的结果。如果您想更好地控制绘图功能,建议您使用ksdensityksdensity中获取进行绘图所需的元素,然后分别进行绘图。

[f,xi] = ksdensity(x)

Example cumulative distribution functions.

或者,您可以先绘制每个图,

% 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

参考:1.for ii = 1:size(Data,2) p(ii).Marker = '.'; % Adjust specific properties of p(ii) as needed p(ii).LineWidth = 1.2; end 2. Graphics Object Properties

© www.soinside.com 2019 - 2024. All rights reserved.