Matlab cdfplot:如何控制标记间距的间距

ala*_*usi 8 matlab plot

我有一个想在纸上使用的Matlab图.该图包含多个cdfplots.现在问题是我不能使用标记因为在图中变得非常密集.如果我想使样本稀疏,我必须从cdfplot中删除一些样本,这将导致不同的cdfplot行.

如何在保持实际线条的同时添加足够的标记?

标记

yuk*_*yuk 8

一种方法是从曲线中获取XData/YData属性,遵循@ephsmith中的solution(1)并将其设置回来.以下是一条曲线的示例.

y = evrnd(0,3,100,1); %# random data

%# original data
subplot(1,2,1)
h = cdfplot(y);
set(h,'Marker','*','MarkerSize',8,'MarkerEdgeColor','r','LineStyle','none')

%# reduced data
subplot(1,2,2)
h = cdfplot(y);
set(h,'Marker','*','MarkerSize',8,'MarkerEdgeColor','r','LineStyle','none')
xdata = get(h,'XData');
ydata = get(h,'YData');
set(h,'XData',xdata(1:5:end));
set(h,'YData',ydata(1:5:end));
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用ECDF函数分别计算经验CDF ,然后在使用PLOT绘图之前减少结果.

y = evrnd(0,3,100,1); %# random data
[f, x] = ecdf(y);

%# original data
subplot(1,2,1)
plot(x,f,'*')

%# reduced data
subplot(1,2,2)
plot(x(1:5:end),f(1:5:end),'r*')
Run Code Online (Sandbox Code Playgroud)

结果 情节输出