2

我可以将 2 个 y 轴添加到 octave/matlab 图中,但是当我尝试使用xlabel('Frequency in Hz')在图底部添加 x 轴时,它不会显示

[ax h1 h2]=plotyy(xx,yy,xx,yy2); %plot two y axes and 1 x-axis
axes(ax(1)); ylabel('Phase Angle in degrees');
axes(ax(2)); ylabel('Amplitude');

任何人都知道如何解决这个问题,所以 x 轴也会出现

我正在使用 octave 3.2.4 / matlab

4

2 回答 2

2

确保xlabel()在引用绘图上的特定轴之一后调用。您只需要执行一次,但由于双轴,在特定轴上下文之外调用 x-label 将不起作用。以下对我来说在 Octave 3.2.4 中工作得很好。

xx  = [1,2,3]; 
yy  = [10,11,12]; 
yy2 = [-10,-11,-12]; 

[ax h1 h2]=plotyy(xx,yy,xx,yy2); 

axes(ax(1)); xlabel('Frequency in Hz'); ylabel('Phase Angle in degrees');
axes(ax(2)); ylabel('Amplitude');
于 2012-04-14T23:12:02.083 回答
1

为了向某些轴添加标签(xlabelylabel),您还可以将此轴引用作为命令调用的第一个参数传递。这样,您还将保证您处于@EMS 指出的正确上下文中。

xx  = [1,2,3]; 
yy  = [10,11,12]; 
yy2 = [-10,-11,-12]; 

[ax h1 h2]=plotyy(xx,yy,xx,yy2); 

xlabel(ax(1),'Frequency in Hz'); ylabel(ax(1),'Phase Angle in degrees');
ylabel(ax(2),'Amplitude');

这在性能方面也更好,因为如果您axes多次调用,您会看到一切都大大减慢。

于 2012-04-14T23:38:03.950 回答