第二个x轴标签不适合图内

时间:2013-05-02 18:16:10

标签: matlab

我正在尝试向图中添加第二个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);

除了'top'之外,还有更好的方法来定位轴标签吗?或者有没有办法说“适应图中的所有内容”?

2 个答案:

答案 0 :(得分:0)

此命令将帮助您:
'ActivePositionProperty','OuterPosition'
有关其他信息,请参阅this website 您必须使用以下命令调整顶轴:

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');

答案 1 :(得分:0)

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

我心中有两种方式:

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]);