Matlab 如何打断 Y 轴并将无穷大置于顶部

Matlab How to Break Y-Axis and Put Infinity at Top

我试图打破绘图的 y 轴并将无穷大作为我的最高点,但我似乎无法修改 y 轴标签。理想情况下,我也想摆脱那条打破情节的曲线〜线,而是使用双斜杠//,但我尝试在 matlab 文件交换中使用一堆断轴函数,但我无法得到他们为我工作。但是,我真的也希望能够比较这两种方法的外观,所以我希望能够看到这两种方法的外观。

我想把下图中的“600”换成"Infinity" 断轴上的字.

我正在使用函数 breakyaxis.m

这是我的代码:

close all;
clc;

figure
% Plot 
 hold on; plot([0 .2 .5 .8 1],[-10 0 50 100 300],'.','MarkerSize',10); %(:,exp_width)); hold on;
plot(.4,150,'+','MarkerSize',10,'MarkerFaceColor','black');
plot(1,600,'+','MarkerSize',10,'MarkerFaceColor','black'); % Set 600 as point where y value should really be infinity

breakyaxis([350 550]); % Break Axis
xlabel('X Axis'); ylabel('Y Axis');
set(gca,'yticklabel',sprintf('%10s',[num2str(-10) num2str(0) num2str(100) 'inf']));
hold off;

这是我现在的身材照片:

查看函数 breakyaxis 的代码(在命令 Window 中键入 edit breakyaxis)我们发现我们实际上可以使用名为 breakInfo,这是一个结构,其中包含有关函数中创建的 4 个轴的一堆信息。

名为 highAxes 的轴是包含 YTickLabel 600 的轴,您要将其替换为 'Infinity'。

因此调用breakyaxis时分配一个输出如下:

breakInfo = breakyaxis([350 550]);

并添加这一行:

set(breakInfo.highAxes,'YTicklabel','Infinity')

剧情是这样的: