赞
踩
一、最近因为写论文的原因,经常需要使用matlab进行绘图,在绘图中遇到了一个问题,在使用cdfplot绘制图形的累计分布函数时,如果不使用marker进行标记,那么绘制得到的曲线在黑白打印中无法分辨,但是如果将曲线标记marker,又可能会出现marker太多,曲线加上marker后变成一条粗粗的线,效果也不好。因此,这里找到一个既可以标记marker,又不会使曲线过粗而看不清楚。
原文链接在这里:https://codeday.me/bug/20181224/470456.html
方法一:从曲线中获取XData / YData属性,以下是一条曲线的示例。这种方法保留了原来绘制cdfplot曲线的全部数据,只是在间隔位置绘制marker。
- 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));
方法二:使用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*')
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。