【发布时间】:2018-08-21 16:18:36
【问题描述】:
我正在尝试在图的底部和顶部绘制一个带有两个 X 轴的 Matlab (R2017a) 图(填充轮廓 + 颜色条),具有相同的比例,但刻度线和标签不同。按照here 和here 的建议,我已经实现了,但是当我尝试手动调整图形窗口大小或打印设置某些与默认比例不同的比例时,例如:
set(gcf,'PaperUnits','centimeters','PaperPosition',[0 0 30 15])
print(gcf,'-dpng',path,'-r300')
新轴被移位:
我已经用 Matlab 中的 peaks 示例数据重现了我的问题:
contourf(peaks)
ax1=gca;
colorbar
set(ax1,'box','off','color','none') % get rid of the box in order not to have duplicated tick marks
ax1_pos = ax1.Position; % position of first axes
ax2 = axes('Position',ax1_pos,... % set the new pair of axes
'XAxisLocation','top',...
'YAxisLocation','Right',...
'Color','none');
set(ax2, 'XLim', get(ax1, 'XLim'), 'YLim', get(ax1, 'YLim')); % set same limits as for ax1
set(ax2, 'XTick', 0:14:42, 'XTickLabels', {'a','a','a','a'},... % set new tick marks and labels for the top X axis.
'YTick', get(ax1, 'YTick'), 'YTickLabels', []);
奇怪的是,如果我删除 colobar 命令并仅绘制填充轮廓,则该图形的行为正确:
有谁知道为什么会发生这种情况(以及如何解决)?我也愿意通过其他方式实现两个 X 轴绘图。
【问题讨论】:
-
我一般建议
export_fig保存。 MATLAB 的函数非常糟糕。 -
@AnderBiguri 嗨,安德,感谢您的提示,但我所描述的行为在手动调整图形窗口大小时也会发生(我将编辑帖子以澄清这一点)所以我很害怕在使用
export_fig()导出之前设置我想要的高度/宽度比例不起作用。 -
非常奇怪的是,当我使用您的最小示例时,我得到的图看起来完全没问题。您是否尝试过将调整大小命令尽可能上移(尽快使用)?
-
@FlorisSA 尝试在提供 MCVE OP 后手动调整图形大小
标签: matlab resize matlab-figure axis colorbar