使用Matlab 绘图时Marker点过于密集

matlab自带的标记点添加,会按照数据长度一个一个添加,这就导致了在数据比较密集的情况下,出现Marker过于密集的情况。

可以使用plot直接绘制一条曲线,然后再插入固定个数的标记点,来实现减少Marker密度的目的。

clear;
omega1 = 2*pi;
t = 0:1e-3:1*pi;
xr = sin(omega1*(0:1e-3:1*pi));
CNT = 50;
k = round(linspace(1, size(t,2), CNT));
figure(1);clf;
plot(t, xr, 'k'); hold on;  % 实际曲线
plot(t(k), xr(k), 'k*');    % 标记点

如果引起了图例的变化,可以收集句柄并只产生对应的图例。

clear;
omega1 = 2*pi;
t = 0:1e-3:1*pi;
xr = sin(omega1*(0:1e-3:1*pi));
CNT = 50;
k = round(linspace(1, size(t,2), CNT));
figure(1);clf;
plot(t, xr, 'k'); hold on;          % 实际曲线
plot(t(k), xr(k), 'k*');            % 标记点
f1 = plot(t(1), xr(1), 'k*-');      % 标记点legend
legend(f1,'xr');

 

=====评论里的STR618同学给了一个新方法,感觉效果更好,更方便一点=====

 

还有一个解决办法就是,在plot这个的参数中,有一个‘MarkerIndices’参数,设置一下就好了,直接就能画了。例如画一段间隔的Marker点的代码,这段代码可以在matlab2016b运行成功,其他版本的不能保证。

x = 0:0.01:15;
y = sin(x);
maker_idx = 1:30:length(x);
plot(x,y,'-s','MarkerIndices',maker_idx)
  • 28
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值