Matlab:用于发布的比例数字 - 精确尺寸和字体大小

时间:2014-07-02 12:43:36

标签: matlab font-size scaling figure

我目前正在撰写一篇科学论文,我非常绝望地创造出具有我希望他们具有的确切尺寸的图形。特别是字体大小不匹配。 我已经google了很多,有很多关于这个主题的指南和脚本,但没有什么真正帮助 - 我还没有想出(抱歉)为什么我的方法不起作用:

FS=8; %font size in points (the same as in my document)
width=12; %width of figure in cm
height=4; %height of figure in cm
scatter(1:20,rand(20,1));
xlabel('X','fontsize',FS),ylabel('Y','fontsize',FS),title('X vs. Y','fontsize',FS)
%now I scale the figure and place it in the bottom left corner. The white margins around it are cropped automatically
set(gca,'units','centimeters','outerposition',[0 0 width height])
%export as .eps
print(gcf,'-depsc','test')

当我将test.eps加载到Inkscape中时,图形大小为10.16 x 3.529厘米,字体大小(标题和轴标签)为10。 如何获得具有精确缩放的图形,尤其是字体大小?

2 个答案:

答案 0 :(得分:0)

我做了以下事情:

FS=8; %font size in points (the same as in my document)
width=12; %width of figure in cm
height=4; %height of figure in cm
scatter(1:20,rand(20,1));
set(gca, 'fontsize', FS);
xlabel('X','fontsize',FS),ylabel('Y','fontsize',FS),title('X vs. Y','fontsize',FS)
set(gcf,'units','centimeters','position',[0 0 width height])
export_fig(gcf, 'test.pdf', '-transparent', '-nocrop')

输出数字为12厘米x 4厘米。然而,在Inkscape中字体大小仍然是10,但它看起来与图中的大小相同。 Export_fig可以从MATLAB file exchange下载。

答案 1 :(得分:0)

以下是我现在解决的问题 - 它不是很优雅,但它有效...... 我绘制我的图形并在图形窗口中按照我希望它缩放的方式进行排列和缩放:

set(gcf,'units','centimeters','position',[0 0 width height])

由于轴周围有白色边距,我通过边距消耗的近似值(试验和误差...)增加宽度/高度。我然后导出它:

export_fig(gcf,'test','-eps','-transparent')

并将其加载到Inkscape中。现在我设置文档属性,以便文档具有我希望我的图形具有的确切大小 - 该图形部分超出此框架,因为我之前增加了宽度/高度。 然后我安排轴在它们之间有尽可能多的空白区域,就像我希望它们一样;希望之后,一切都在文档边框内。 可能绘图现在比文档边框小 - 为了确保它不会扩展,搞乱缩放,当我把它放在我的实际文档(我的论文,而不是Inkscape文档......)时,我只是创建一个与文档边框匹配的白色背景。 Aaand完成了。 除了Matlab中的fontsize和fontname属性 - 我还没弄清楚为什么它们没有正确导出...但是在Inkscape中手动修复并不困难。

感谢大家的帮助。