Je cherche à exporter ma parcelle MATLAB en tant que chiffre de haute qualité. Plus précisément, je voudrais l'enregistrer sous un format de fichier vectoriel tel que EPS ou SVG.
I have tried print and saveas commands:
saveas(h,'myFileName','epsc2');
print('-r150','-depsc2', 'myFilename');
Dans tous les cas, cela produit des parties du graphique de mauvaise qualité, bien que les étiquettes des axes soient bien vectorielles. Pourquoi MatLab effectue-t-il un rendu horrible avant de le mettre dans un EPS?
Exemple de tracé de mauvaise qualité ici: http://users.ox.ac.uk/~pemb2372/myFileName.eps
Edit: Il convient également de noter que si vous utilisez un Mac affichant un fichier EPS à partir de Matlab, l'application 'Preview' peut restituer le contenu du graphique interne en qualité tramée et de mauvaise qualité, tout en laissant les axes et les étiquettes vectorisés et élevés. qualité. C'est très trompeur, mais lorsque vous ouvrez ledit fichier EPS, par exemple dans Inkscape, la qualité est en fait vectorielle et assez élevée.
Edit 2: Le compte d'hébergement de mon université a expiré, vous ne pouvez donc plus afficher ce chiffre. Il suffit de dire qu’elle a montré un tracé de style raster de mauvaise qualité avec de belles lignes d’axe, des graduations et des étiquettes de haute qualité.
Matlab peut exporter au format PDF avec une meilleure qualité que EPS, mais avec ses propres réserves quant à la définition de marges et de tailles de police décentes.
edit: Les exemples sont similaires au cas EPS comme expliqué dans l'aide de p. ex. print
:
saveas(gcf,'filename.pdf')
ou
print('-dpdf','filename.pdf')
Vous pouvez également consulter les propriétés PaperSize
, PaperPosition
et PaperUnits
de votre figure (au moyen des fonctions set
et get
).
edit: une autre option consiste à utiliser l'une des fonctions disponibles sur FileExchange telles que celles mentionnées par @ user664303 ci-dessous. Mon favori personnel à utiliser avec LaTeX est matlab2tikz
pour lequel la dernière version peut être obtenue à partir de GitHub . Avec la bibliothèque external
de TikZ, je pense que cela fournit certains des graphes les plus beaux qui soient ... .. Il est probablement préférable de mentionner que je participe activement au projet matlab2tikz
depuis 2012.
Je pensais que je partagerais le problème que j'ai et comment je l'ai surmonté ...
J'obtenais des résultats terribles parce que j'avais le mauvais moteur de rendu configuré par défaut. Dans mon startup.m
, le rendu zbuffer
était activé. Ceci est un exemple de sortie eps.
J'ai créé cette sortie eps avec: print(gcf,'-depsc2','filename.eps')
. Cet eps est tellement évidement pixellisé. Cela me met en colère contre matlab. Ensuite, j'ai eu une vague d'idées - peut-être que mon rendu par défaut zbuffer
interfère avec le processus de sauvegarde d'image. Donc, en ajoutant la ligne:
set(gcf,'renderer','painters')
et en exécutant la commande print comme avant, voici le résultat:
Notez que je viens de prendre des captures d'écran des fichiers de sortie EPS à 100%. Et je peux confirmer que la deuxième image est en fait un vecteur. Voici une bonne question/explication sur le choix Renderers in MATLAB.
La fonction export_fig de l'échange de fichiers MATLAB est un moyen raisonnablement fiable d'exporter avec précision des données au format eps et pdf (ainsi que des formats bitmap) dans MATLAB.
La fonction plot2svg , également issue de l'échange de fichiers, vous permet d'exporter au format svg. Il offre des avantages supplémentaires, tels que la possibilité d'exporter des objets de patch translucides au format vectoriel.
Une comparaison des méthodes d’exportation est donnée dans ce blog post .
J'achète toujours les parcelles finales (celles qui sont supposées être insérées dans des documents et publications) par la bibliothèque matplotlib
de python
.
Vous pouvez parier sur la qualité incroyable des graphiques générés, à la fois les formats .pdf
et .eps
.