在Matlab中未对齐左右y轴

时间:2017-11-07 23:29:46

标签: matlab

我试图在同一图表上产生两条正弦曲线。两者有不同的幅度,所以我有一个左右y轴。然而,当我具有Pi / 4的相位差时,两个y轴的零点不对齐,而是以不同方式偏斜。有什么办法可以阻止这个吗?谢谢。

代码:

function[] = improvised (a,b,c,d);
% a is time period, b is amplitude red, c amplitude blue
% d is phase shift blue relative to red
x = (0.0:0.001*a:2*a);
y = b*sin (2*pi*x/a);
z = c*sin ((2*pi*x/a)+(2*pi*d/a));
plot (x,y,'r-');
ax = gca;
ax.XAxisLocation = 'origin';
yyaxis left
xlabel ('blabla')
ylabel('blabla')

yyaxis right
plot (x,z,'b-');
ylabel('blabla')

on the right, the x axis crosses between 0.1 and 0, for seemingly no reason

1 个答案:

答案 0 :(得分:1)

对于您给出的特定示例,我们可以通过编程方式确定两条曲线的幅度。因此,可以使用ylim()函数单独选择两条曲线的y轴限制,如下所示:

function[] = improvised (a,b,c,d)
% a is time period, b is amplitude red, c amplitude blue
% d is phase shift blue relative to red
x = (0.0:0.001*a:2*a);
y = b*sin (2*pi*x/a);
z = c*sin ((2*pi*x/a)+(2*pi*d/a));
plot (x,y,'r-');
ax = gca;
ax.XAxisLocation = 'origin';
yyaxis left
xlabel ('blabla')
ylabel('blabla')
ylim([-b,b])

yyaxis right
plot (x,z,'b-');
ylabel('blabla')
ylim([-c,c])

现在我们用给定的参数调用函数:

>> improvised(.009, 6, 0.275, 0.001125 )

我们得到以下情节。 enter image description here