Matlab如何打破Y轴并将无穷大放在首位

时间:2015-04-20 22:25:44

标签: matlab graph plot annotations figures

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

我想更换" 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;

这是我目前身材的照片: plot

1 个答案:

答案 0 :(得分:1)

查看函数breakyaxis的代码(在命令窗口中输入edit breakyaxis),我们看到我们实际上可以使用名为breakInfo的输出参数调用该函数,这是一个结构,包含一系列关于函数中创建的4轴的信息。

名为highAxes的轴是包含YTickLabel 600的轴,您要用“无限”替换它。

因此,在调用breakyaxis时分配输出如下:

breakInfo = breakyaxis([350 550]);

并添加以下行:

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

情节如下:

enter image description here