Matlab中绘制数据存在间隔的图形
不知道⼤家伙是不是经常遇见这类情况,就是绘图数据中横坐标的间隔不是等值,⽽matlab默认对所有的数据点进⾏连线,但是我不太想要这个较⼤的数据间隔存在连线怎么办呢?
⽐如如下:
如何用matlab将已知点连线x = [1:3 10:15];% 3到10没数据
y = cos(x);
plot(x,y);
本来横坐标3到10之间是没有数值的,它却连接上了,但是我不想要这个连线该怎么办呢?
第⼀种⽅法就是将两个数据分开绘制,代码如下:
x = [1:3 10:15];% 3到10没数据
y = cos(x);
x1 = 1:3;
x2 = 10:15;
y1 = cos(x1);
y2 = cos(x2);
plot(x1,y1,'-b',x2,y2,'-b')
效果如下:
可以发现此时横坐标3到10之间不再有连线了。
当然这种⽅法实在是有点⼟,那看看还有什么新鲜玩法呢?
第⼆种⽅法就是给横坐标3到10之间的数据赋值为nan,那么其间的连线也不会显⽰。代码如下:
% ⽐如原始数据
x = [1:3 10:15];% 3到10没数据
y = cos(x);
subplot(1,2,1)
plot(x,y);
% 补全数据
x = 1:15;
y = cos(x);
y(3<x&x<10) = nan;
subplot(1,2,2)
plot(x,y)
效果如下:
可以发现右边的⼦图中就不再显⽰连线了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论