Я использую еще недокументированный HG2-Update для создания своего Графики MATLAB, потому что они просто выглядят намного лучше.
(Источник: Яир Альтман)
На самом деле, используя текущую версию Release 2013b , он работает довольно хорошо, и особых проблем не возникает. За исключением того, что нужно экспортировать фигуры как векторную графику (средство визуализации: '-painters'
), особенно как pdf .
Я использую команды:
saveas(gcf,'test.pdf','pdf')
Или
print(gcf,'test.pdf','-dpdf')
Есть проблемы с отображением , отпечаток не содержит всю фигуру, некоторые части обрезаны или шрифты, отличные от стандартных, не распознаются.
Но я бы очень хотел остаться с HG2 и по-прежнему хотел бы использовать векторную графику . Есть ли какое-нибудь решение или обходной путь?
2 ответа
Экспорт векторной графики с помощью еще не официального HG2-Update - это довольно сложная задача. проблема. .pdf -экспорт все еще полностью провален. Хорошо работает .svg -export, за исключением того, что граничный блок установлен неправильно.
Долгий обходной путь: Сохраните график с помощью '-dsvg'
(print
- команда) или 'svg'
(saveas
- команда) как векторную графику, откройте файл в приложении с открытым исходным кодом Inkscape и снова сохраните как .pdf с помощью Экспорт область рисует установлен флажок.
Довольно сложно, поэтому я нашел способ сделать это через командную строку прямо из Matlab (Inkscape все еще требуется!):
filename = 'test';
inkscapepath = '"C:\Program Files (x86)\Inkscape\inkscape.exe"';
%// save as .svg
saveas(gcf,filename,'svg')
%// open and save with "export-area-drawing" set via command line
system( [inkscapepath ' ' filename ...
'.svg --export-area-drawing --export-pdf=' filename '.pdf'])
Это займет некоторое время, но пока работает без каких-либо известных проблем.
Затем дополнительно удалите svg-файл:
delete([filename '.svg'])
У меня была та же проблема, и я использовал обходной путь из thewaywalk. Теперь я обнаружил, что функция MATLAB "hgexport" работает под HG2 (в R2014a).
Проблема по-прежнему заключалась в размере бумаги. Я хочу использовать одинаковый размер для всех графиков с как можно меньшим количеством белой рамки. Здесь вам нужно установить два размера:
Размер бумаги устанавливается с помощью set(gcf,'PaperSize',[width height])
, а размер вашей диаграммы устанавливается с помощью стилей экспорта. Они задаются в «Настройках экспорта» или в командной строке:
exp_style=hgexport('readstyle','default');
exp_style.Width = 'width';
exp_style.Height = 'height';
exp_style.Renderer = 'painters';
Теперь вы можете экспортировать свой pdf:
hgexport(gcf,'pdfname',exp_style,'Format','pdf');
PS: В HG2 вы также можете использовать латекс для меток:
set(gca,'TickLabelInterpreter','latex');
Похожие вопросы
Связанные вопросы
Новые вопросы
matlab
MATLAB - это высокоуровневая языковая и интерактивная среда программирования для численных расчетов и визуализации, разработанная MathWorks. Не используйте оба тега [matlab] и [octave], если явно не задан вопрос о сходстве или различии между ними. При использовании этого тега, пожалуйста, укажите версию MATLAB, с которой вы работаете (например, R2017a).