2016-12-31 23 views
0

Мне нужно, чтобы некоторые цифры были опубликованы. Сначала я экспортирую цифры из matlab в формате .svg, а затем выполняю некоторую пост-обработку в inkscape. Я не проблема с цифрами, полученными с использованием plot или scatter, но когда я экспортирую цифры, созданные с использованием surfview(2)), у меня возникают проблемы. Если я использую plot или scatter, я могу разгруппировать и обработать различные части, такие как название, оси, разбросанные точки, линии и т. Д. В inkscape. Однако для surf Matlab экспортирует только одну фигуру со всеми различными частями, сгруппированными в один блок. Я не могу отделить отдельную часть, и когда я приближаюсь очень близко, я могу увидеть растровое разрешение для осей и титров (если я использую plot, названия и оси имеют «бесконечное» разрешение, когда я приближаюсь очень близко). Я прекрасно разбираюсь с поверхностным графиком, имеющим конечное разрешение, но мне нужно, по крайней мере, иметь возможность обрабатывать оси и названия (которых я в настоящее время не могу сделать). Что мне делать, чтобы я мог «отделить» заголовок и оси от основного сюжета, точно так же, как цифры, полученные от plot и scatter?экспорт svg изображение из участка поверхности MATLAB

ответ

0

Я имел обыкновение использовать 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 так же, как описано выше, с отличными результатами. Это еще одно предложение!