绘制两轴semilog matlab

时间:2016-05-17 13:12:30

标签: matlab matlab-figure

我有2个具有相同x数据的图:

x=[0 100];
y1=x^2;
y2=e^x;

我想用半文字绘制y2(即以对数刻度)。 我如何将它们一起绘制? 左侧 - y1 Y轴; 右侧 - y2 Y轴;

1 个答案:

答案 0 :(得分:1)

好吧,Google快速搜索您在问题中提供的字词(例如'semilogy''绘制两个轴matlab')会向您显示我在向你展示什么。总之...

您可以使用内置的yyaxis function来...

  

创建一个包含两个y轴的图表。

您可以使用内置的semilogy function来...

  

创建一个y轴的对数刻度和x轴的线性刻度。

总而言之,这几乎只是我在上面链接的yyaxis函数文档中提供的代码的通用版本......

x = [ insert your x-data];
y1 = insert-your-first-func;
yyaxis left
plot(x,y1)

y2 = insert-your-second-func;
yyaxis right
semilogy(x,y2)

修改 如果使用Matlab版本< 2016a,那么您将无法利用yyaxis函数的实用程序。在这种情况下,StackOverflow上有很多问题(如this onethat one),这些问题解释了如何在同一个x轴上绘制两组数据,但是不同的y轴(例如,线性和半对数。)。

答案也在plotyy documentation!这是:

  

plotyy(X1,Y1,X2,Y2,'function1','function2')使用function1(X1,Y1)绘制左轴数据,使用function2(X2,Y2)绘制右边的数据轴。

     

函数可以是函数句柄,也可以是指定plot,semilogx,semilogy,loglog,stem或任何接受MATLAB®函数的字符串。   语法:h = function(x,y)

上面的代码现在看起来像......

x = [ insert your x-data];
y1 = insert-your-first-func;
y2 = insert-your-second-func;
plotyy(x,y1,x,y2,'plot','semilogy');

快乐的编码!请记住,Google是您的朋友!