首页 文章

MATLAB:同一图表上多个图的两个不同的y轴限制

提问于
浏览
0

我需要在MATLAB中在同一图上绘制两个图 . 两个数据样本中的最大值和最小值都有很大的变化,我无法通过采用相同的y轴限制来绘制 . 我不希望使用其他_1776253中所解释的两个比例,但需要使用单个y轴并获得解决方案 . 我试过这段代码:

x_axis_X = 1:length(S);
y_axis_Y = 1:length(N);
ylim([-1204200 -1841.6])
set(gcf,'color','w');
plot(x_axis_X, S,'o-', y_axis_Y, N, 'x-');

结果如图所示,其中绘制了一个没有正确y轴范围的数据样本 .
plot

第一个数据样本的y限制是-1204200到-1841.6,第二个是-89429345.5到-10408189.43 . 如何将ylim定义为适 Contract 一图中的两个图?感谢您的投入 . 谢谢 .

3 回答

  • 1

    在旧版本的MATLAB中使用函数 plotyy . 在更新版本的MATLAB中使用 yyaxis . 以下是文档中的示例:

    x = linspace(0,10);
    y = sin(3*x);
    yyaxis left
    plot(x,y)
    
    z = sin(3*x).*exp(0.5*x);
    yyaxis right
    plot(x,z)
    ylim([-150 150])
    

    enter image description here

  • 0

    我尝试了缩放一个数据集的想法,使其具有与其他数据集相似的幅度 . 在这里,我将一个数据集乘以100(或任何合适的缩放参数),然后它将在大小上与其他数据集相似 . 为了清楚地提到图表中已经缩放了哪些数据,我使用了图例 .

    plot(x,data1,x,100*data2)
    legend('data1','100*data2','location','southeast')
    

    谢谢 .

  • 0

    缩放不是最佳选择,因为您可能需要稍后处理数据 . 例如,如果您需要对数比例也不起作用 .

    Matlab有几种方法可以解决它 . 我特别喜欢在图中使用新轴,就像我在下面的例子中所做的那样 .

    为了以防万一,你也在一个简单的谷歌搜索中找到了这个答案!

    enter image description here

    码:

    a=1:10;
    b=(10:-1:1)*100;
    x=1:10;
    hold on
    plot(x,a,'b')
    pax1=get(gca,'Position'); %get axis position
    ax2 = axes('Position',pax1); %create a new axis
    plot(ax2,x,b,'r') %plot new data
    set(ax2, 'Yaxislocation','right',...
    'color','none') % set it transparent and to the right
    

相关问题