1

我正在尝试向图形添加第二个 x 轴。它似乎正在工作,但第二个轴标签显示在图形的一半之外。也就是说,我只看到显示“第二轴”的下半部分。这是一个演示问题的小示例:

close all;

ax1 = gca;
set(ax1,'XColor','r','YColor','r')
xlabel(ax1, '1st Axis');


data=rand(10,2);
line(data(:,1), data(:,2), 'Color', 'r');

ax2 = axes('Position',get(ax1,'Position'),...
           'XAxisLocation','top',...
           'YAxisLocation','right',...
           'Color','none',... % necessary, or the axes do not appear
           'XColor','k','YColor','k');
xlabel(ax2, '2nd Axis');

data=rand(10,2);
line(data(:,1), data(:,2), 'Color', 'k','Parent', ax2);

除了“顶部”之外,还有更好的方法来定位轴标签吗?或者有没有办法说“把所有东西都放在图中”?

4

2 回答 2

0

此命令将帮助您:有关更多信息,
'ActivePositionProperty','OuterPosition'
请参阅此网站
您必须使用以下命令调整顶轴:

ax2 = axes('Position',get(ax1,'Position'),...
       'XAxisLocation','top',...
       'YAxisLocation','right',...
       'Color','none',... % necessary, or the axes do not appear
       'XColor','k','YColor','k','ActivePositionProperty','OuterPosition');

如果绘图的组装顺序并不重要,请将其反转,以便红色轴适合另一个轴:

close all;

ax2 = axes('XAxisLocation','top',...
           'YAxisLocation','right',...
           'XColor','k','YColor','k','ActivePositionProperty','OuterPosition');
xlabel(ax2, '2nd Axis');

data=rand(10,2);
line(data(:,1), data(:,2), 'Color', 'k','Parent', ax2);

ax1 = axes('Position',get(ax2,'Position'),...
           'Color','none',... % necessary, or you do not see the second graph
           'XColor','r','YColor','r');
xlabel(ax1, '1st Axis');

data=rand(10,2);
line(data(:,1), data(:,2), 'Color', 'r');
于 2013-05-02T18:28:03.143 回答
0

如果有办法将 xLabel 设置在最佳位置,我不会相信它,因为我不相信 legend('','Location','best')。

我心目中的两种方式:

set(get(ax2,'XLabel'),'Position',get(xlabh,'Position) - [0 .2 0])

或者

ax1 = axes('XColor','r','YColor','r','Position',[0.1 0.1 0.9 0.7]);
于 2013-05-02T18:34:03.387 回答