Matlab: масштабные цифры для публикации - точные размеры и размеры шрифта
В настоящее время я пишу научную диссертацию и очень отчаянно нуждаюсь в создании фигур, имеющих точные размеры, которые я хочу, чтобы они имели. Тем более размеры шрифта не совпадают. Я уже много гуглил и есть куча руководств и сценариев на эту тему, но ничего не помогло - я еще не понял (извините), почему мой подход не работает:
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 ответа
Вот как я решаю это на данный момент - это не совсем элегантно, но это работает... Я строю свою фигуру и располагаю и масштабирую ее в окне рисунка так, как я хочу, чтобы она масштабировалась:
set(gcf,'units','centimeters','position',[0 0 width height])
Из-за белых полей вокруг осей я увеличиваю ширину / высоту на приблизительные значения (методом проб и ошибок...), которые используются. Я тогда экспортирую это:
export_fig(gcf,'test','-eps','-transparent')
И загрузите его в Inkscape. Теперь я установил свойства документа так, чтобы документ имел точный размер, который должен иметь моя фигура - фигура частично выходит за рамки, потому что ранее я увеличил ширину / высоту. Затем я размещаю оси так, чтобы между ними было столько пустого пространства, сколько я хочу; надеюсь, после этого все будет в границах документа. Вероятно, чертеж теперь меньше границ документа - чтобы гарантировать, что он не будет расширяться, что мешает масштабированию, когда я помещаю его в свой фактический документ (мой тезис, а не документ Inkscape...), я просто создаю белый фон, соответствующий границам документа. Ааа сделано. За исключением свойств fontsize и fontname в Matlab - я не понял, почему они не экспортируются должным образом... но это не сложно исправить вручную в Inkscape.
Спасибо за вашу помощь всем.
Я сделал следующее:
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см х 4см. Однако размер шрифта в Inkscape по-прежнему составляет 10, но выглядит так же, как на рисунке. Export_fig можно загрузить из обмена файлами MATLAB.