我正在尝试向图中添加第二个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'之外,还有更好的方法来定位轴标签吗?或者有没有办法说“适应图中的所有内容”?
答案 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]);