MATLAB坐标不连续画图

MATLAB坐标不连续画图

Method1

%注意:该方法语句自 R2019b 版本才开始提供

创建一个包含两个图块的分块图布局,并放置一个跨这两个图块的坐标区对象。在最后的演示中,此坐标区对象将出现在背景中,即显示在另外两个坐标区对象的后面。其 x 轴的一部分将可见,以显示一个长 x 轴。

创建一个 1×2 分块图布局 t,并指定紧凑的图块间距。通过设置图块间距,您可以控制 x 轴上各区间之间的间隙大小。

通过调用 axes 函数并将 t 指定为父对象,创建背景坐标区 bgAx。指定名称-值参数以删除所有刻度并关闭图框。

通过将 bgAx 的 Layout.TileSpan 属性设置为 [1 2],使背景坐标区跨两个图块。

figure
t = tiledlayout(1,2,'TileSpacing','compact');
bgAx = axes(t,'XTick',[],'YTick',[],'Box','off');
bgAx.Layout.TileSpan = [1 2];

在第一个图块中的 bgAx 前面创建一个坐标区对象。绘制 x 和 y,并将 x 轴范围设置为第一个区间:

通过调用 axes 函数并将 t 指定为父对象,创建 ax1。默认情况下,坐标区位于第一个图块中。

在 ax1 中绘制 x 和 y。

调用 xline 函数,以在第一个区间的上限处显示一条垂直虚线。

将 x 轴范围设置为第一个区间 [a b]。

添加轴标签以标识第一个区间。

ax1 = axes(t);
plot(ax1,x,y)
xline(ax1,15,':');
ax1.Box = 'off';
xlim(ax1,[0 15])
xlabel(ax1, 'First Interval')

重复该过程,以创建另一个坐标区对象并针对第二个区间绘图。默认情况下,坐标区出现在第一个图块中。通过将坐标区的 Layout.Tile 属性设置为 2,将其移至第二个图块。然后,链接这两个坐标区,使两个 y 轴的范围匹配。

% Create second plot
ax2 = axes(t);
ax2.Layout.Tile = 2;
plot(ax2,x,y)
xline(ax2,45,':');
ax2.YAxis.Visible = 'off';
ax2.Box = 'off';
xlim(ax2,[45 60])
xlabel(ax2,'Second Interval')

% Link the axes
linkaxes([ax1 ax2], 'y')

引用自:https://ww2.mathworks.cn/help/matlab/creating_plots/graph-with-multiple-x-axes-and-y-axes.html

Method2

通过移动重建x和y的数值的方法截断坐标轴(Broken Axis)

注意:截断符号用文本添加

location_X=5;
t1=text(location_X, 0,'//','sc','BackgroundColor','w','margin',eps, 'fontsize',13);

引用自:https://www.cnblogs.com/kailugaji/p/14526291.html

结合结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值