【发布时间】:2016-05-17 13:12:30
【问题描述】:
我有 2 个具有相同 x 数据的图:
x=[0 100];
y1=x^2;
y2=e^x;
我想用 semilogy(即对数刻度)绘制 y2。 我怎样才能将它们绘制在一起? 左侧——y1 Y轴; 右侧——y2 Y轴;
【问题讨论】:
标签: matlab matlab-figure
我有 2 个具有相同 x 数据的图:
x=[0 100];
y1=x^2;
y2=e^x;
我想用 semilogy(即对数刻度)绘制 y2。 我怎样才能将它们绘制在一起? 左侧——y1 Y轴; 右侧——y2 Y轴;
【问题讨论】:
标签: matlab matlab-figure
好吧,通过 Google 快速搜索您在问题中提供的术语(即,'semilogy' 和 'plotting two axes 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)
编辑:
如果使用小于 2016a 的 Matlab 版本,那么您将无法利用 yyaxis 函数的实用性。在这种情况下,StackOverflow 上有很多问题(如 this one 和 that one)解释了如何在相同的 x 轴上绘制两组数据,但在不同的 y 轴(即线性和例如半对数)。
答案也在plotyy documentation 中!这里是:
plotyy(X1,Y1,X2,Y2,'function1','function2') 使用 function1(X1,Y1) 绘制左侧轴的数据,使用 function2(X2,Y2) 绘制右侧的数据轴。
function 可以是函数句柄或字符串,指定 plot、semilogx、semilogy、loglog、stem 或任何接受 语法: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 是您的朋友!