Мне нужно, чтобы некоторые цифры были опубликованы. Сначала я экспортирую цифры из matlab в формате .svg, а затем выполняю некоторую пост-обработку в inkscape. Я не проблема с цифрами, полученными с использованием plot
или scatter
, но когда я экспортирую цифры, созданные с использованием surf
(в view(2)
), у меня возникают проблемы. Если я использую plot
или scatter
, я могу разгруппировать и обработать различные части, такие как название, оси, разбросанные точки, линии и т. Д. В inkscape. Однако для surf
Matlab экспортирует только одну фигуру со всеми различными частями, сгруппированными в один блок. Я не могу отделить отдельную часть, и когда я приближаюсь очень близко, я могу увидеть растровое разрешение для осей и титров (если я использую plot
, названия и оси имеют «бесконечное» разрешение, когда я приближаюсь очень близко). Я прекрасно разбираюсь с поверхностным графиком, имеющим конечное разрешение, но мне нужно, по крайней мере, иметь возможность обрабатывать оси и названия (которых я в настоящее время не могу сделать). Что мне делать, чтобы я мог «отделить» заголовок и оси от основного сюжета, точно так же, как цифры, полученные от plot
и scatter
?экспорт svg изображение из участка поверхности MATLAB
ответ
Я имел обыкновение использовать Inkscape для моих научных публикаций, а также, но я обнаружил, что много времени вы можете получить лучшие результаты с pgfplots в латекса вместе с matlab2tikz matlabscript. В Интернете есть много ресурсов, но вот как мой рабочий процесс будет выглядеть в соответствии с вашей ситуацией в серфинге. У меня есть macOSX с установленными латексом, matlab и matlab2tikz. Будет работать с небольшими изменениями в Linux.
В Matlab:
surf(peaks(25))
matlab2tikz('plot.tikz’)
Тогда у меня есть следующий баш-скрипт (просто скрипт в той же папке, что и изображение, которое выполняется с помощью простого двойного щелчка). (Нужно быть chmod-ed как исполняемый файл для этого).
#!/bin/bash
cd ~/Desktop
rm *.eps
cat > plot.tex << EOF
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{max space between ticks=50}
\pgfplotsset{scaled ticks = false}
\pgfplotsset{compat=1.6}
\pgfplotsset{xticklabel style={/pgf/number format/fixed}}
\pgfplotsset{yticklabel style={/pgf/number format/fixed}}
\begin{document}
\input{plot.tikz}
\end{document}
EOF
pdflatex plot.tex
pdf2ps plot.pdf
ps2eps plot.ps
Обратите внимание, что строка кд ~/Desktop выше должна быть изменена, чтобы отразить какую папку скрипт должен быть запущен с (немного дрянной, но необходимо, поскольку Finder не правильно проходить вдоль папка из программы выполняется, afaik).
Это дает высококачественные изображения в формате eps или pdf или что вам нравится, с тоннами настроек для осей и тиков и т. Д. И все это использует родные латексные шрифты.
Редактировать: Недавно я начал использовать patch() в matlab, а затем экспортировал его в tikz так же, как описано выше, с отличными результатами. Это еще одно предложение!