2016-05-17 94 views
0

我有2个地块具有相同x数据:绘制两轴半对数MATLAB

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

我想semilogy(即对数刻度)绘制Y2。 我怎样才能将它们绘制在一起? 左侧 - y1 Y轴; 右侧 - y2 Y轴;

回答

1

好了,快速谷歌搜索,你在你的问题提供的条款(即“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轴(例如,linear和semilog,例如)。

答案也在plotyy documentation!在这里它是:

plotyy(X1,Y1,X2,Y2, '功能1', '功能2')使用功能1(X1,Y1)到绘制数据用于左轴和功能2(X2,Y2)绘制右轴的数据。

功能可以是函数手柄或字符串,指定情节,semilogx,semilogy,双对数,茎,或接受 语法任何MATLAB®函数:H =函数(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是你的朋友!

+0

'yyaxis'需要MATLAB> = 2016a才能工作,虽然 – BillBokeey

+0

的确如此。如果OP使用的是MATLAB版本<2016a,那么'plotyy'是他们最好的选择。有很多关于StackOverflow的问题,比如[here](http://stackoverflow.com/questions/2676004/different-right-and-left-axes-in-a-matlab-plot)和[here](http: //stackoverflow.com/questions/28634426/create-an-xy-plot-with-two-y-axis),这已经解释了如何使用'plotyy'来达到这个目的。 –

+0

真的,只是想指出 – BillBokeey