将图形保存为eps文件时,Matlab会切断颜色贴图标签
我有一个使用contourf和颜色条生成的图形。我的大多数绘图都很好,但是当颜色条上的值的顺序为将图形保存为eps文件时,Matlab会切断颜色贴图标签,matlab,matlab-figure,Matlab,Matlab Figure,我有一个使用contourf和颜色条生成的图形。我的大多数绘图都很好,但是当颜色条上的值的顺序为10^{-3}时,数字0.005等由颜色条写入,或者x10^{-3}写入顶部 在这两种情况下,标签的一部分被切断-要么是x10^{-3}中的3,要么是0.005中的5的一半 我可以使用 set(gca, 'ActivePositionProperty', 'OuterPosition') 用于屏幕上的数字,但我需要以eps格式保存它。执行此操作时,3(或5)再次被切断 如果我手动拉动figure窗口
10^{-3}
时,数字0.005
等由颜色条写入,或者x10^{-3}
写入顶部
在这两种情况下,标签的一部分被切断-要么是x10^{-3}
中的3
,要么是0.005
中的5
的一半
我可以使用
set(gca, 'ActivePositionProperty', 'OuterPosition')
用于屏幕上的数字,但我需要以eps格式保存它。执行此操作时,3
(或5
)再次被切断
如果我手动拉动figure窗口的右下角使其变大,我也可以解决这个问题。但这会改变坐标轴标签等的大小,与绘图本身相比,这样它们就不同于我的所有其他图形,即我不调整大小的图形
有什么建议吗?Matlab对图形使用两种尺寸:屏幕尺寸(
Position
figure属性)和PaperSize
。前者用于在屏幕上显示,后者用于打印或导出为以外的图像格式。图
。我怀疑这就是你问题的根源
以下是您可以尝试的内容:
size = get(gcf,'Position');
size = size(3:4); % the last two elements are width and height of the figure
set(gcf,'PaperUnit','points'); % unit for the property PaperSize
set(gcf,'PaperSize',size);
这将要导出到.eps
的“纸张”的大小设置为屏幕上显示的图形大小
如果这不起作用,您可以尝试使用PaperSize
或其他与“纸张”相关的属性。文档页面提供了有关属性的更多信息
希望这有帮助 前一个建议部分正确。以下是我所做的:
size = get(gcf,'Position');
size = size(3:4);
set(gcf,'PaperSize',size)
set(gcf,'PaperPosition',[0,0,size(1),size(2)])
我不确定[0,0]的偏移量,但单点截断是什么:)尝试将文件保存到文件名。eps:
set(gcf,'Units','points')
set(gcf,'PaperUnits','points')
size = get(gcf,'Position');
size = size(3:4);
set(gcf,'PaperSize',size)
set(gcf,'PaperPosition',[0,0,size(1),size(2)])
print(gcf,'filename','-depsc','-loose'); % Save figure as .eps file
set(gcf,'Units','points')
set(gcf,'PaperUnits','points')
size = get(gcf,'Position');
size = size(3:4);
set(gcf,'PaperSize',size)
set(gcf,'PaperPosition',[0,0,size(1),size(2)])
print(gcf,'filename','-depsc','-loose'); % Save figure as .eps file