我有2个具有相同x数据的图:
x=[0 100];
y1=x^2;
y2=e^x;
我想用半文字绘制y2(即以对数刻度)。 我如何将它们一起绘制? 左侧 - y1 Y轴; 右侧 - y2 Y轴;
答案 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 one和that 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是您的朋友!