matlab中marker太密,Matlab画图时Marker过多的解决方法.pdf

Matlab画图时Marker过多的解决方法,matlabmarker,matlabplotmarker,matlabmarker太密,matlabmarker稀疏点,matlabmarker种类,matlabmarkertype,matlabmarker实心,matlab中marker的类型,matlab中marker

Mynford(308491581

Matlab 画图时 Marker 太密了怎么办?

在写论文时,曲线图有时需添加Marker 以使图片更美观。可用Matlab 画

图有时Marker 会非常密集。这个问题在写论文碰到过,分享一下自己的解决方

法。为简便起见假定要画的图为正弦曲线。

Matlab 画图的代码如下:

M=400;

x=linspace(-pi,pi,M);

y=sin(2*x);

plot(x,y,'*r-')

xlabel('t/s')

ylabel('amplitude')

title('sine wave') ;

生成的图如图1所示,Marker过于密

集。 图1

1.减少样点的数量

产生 Marker 太多的原因

是数据太密集,可通过减少数

据的个数来减少Marker 数量。

上述代码中,令 M= 100 即可

得到图 2 。这种方法最简单。

对数据进行抽样,会造成数据

的丢失。故当数据变化缓慢时

尚可用。若相邻数据点的值变

化较大,则可能导致部分特征

点的丢失,从而引起图像的失

图2 M= 100 时的曲线图

真。

Mynford(308491581

2. 采用hold on 语句添加Marker

图3. hold on 添加Marker

代码如下:

M=400;

x=linspace(-pi,pi,M);

y=sin(2*x);

%marker 的参数定义

markSpacing=20; %每20个点添加一个Marker

x_marker=x(1:markSpacing:M);% Markers 的横坐标

y_marker=y(1:markSpacing:M); % Markers的纵坐标

hold on

plot(x_marker,y_marker,'r*') %画出

plot(x,y,'r-')

xlabel('t/s') ,ylabel('amplitude') ,title('sine wave') ;

该方法很灵活,可以自己控制Marker 的个数和类型,同时不会丢失原来的数据。

采用hold on 方法添加Marker 时,Legend 的添加

figure

x=linspace(-pi,pi,M);

y=sin(2*x);

%取出数据的前两个点用于生成legend

xlegend=x(1:2);

ylegend=y(1:2);

markSpacing=50;

x_marker=x(1:markSpacing:M);

Mynford(308491581

y_marker=y(1:markSpacing:M);

hold on

plot(xlegend,ylegend,'-ro') %添加legend

plot(x_marker,y_marker,'ro')

plot(x,y,'r-')

xlabel('t/s')

ylabel('Amplitude')

title('sine wave')

legend('The proposed method')

用方法 2 的一个缺点是不能自动生成正确的 legend,这个问题可通过Matlab

生成legend 时总是安顺序进行生成这一性质实现,从上述代码易看出实现方法。

上述代码运行效果如下:

图4 添加legend

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值