¿Cómo establecer la ttwig en matlab a un tamaño específico?

En general, deseo trazar una ttwig xy bastante compleja (muchas curvas superpuestas) a un formato A3, de modo que:

A4 210x297 A3 = A4*2 = 420 x 297 ... - 10mm each side = 400 x 277 (size of desired plot window) 

¿Cuál es la forma más fácil de establecer el tamaño de la gráfica para que se ajuste a ese tamaño cuando se imprime en PDF (o en cualquier otro formato de salida común)?

Consulte la documentación de matlab para las propiedades de la figura .

A saber:

  • PaperSize – Define explícitamente el tamaño del canvas.
  • PaperType : establece PaperSize en uno de varios tamaños de papel estándar.

La herramienta de trazado integrada le permite guardar figuras como todo tipo de formatos de imagen, por lo que debería estar listo. Si juega con las configuraciones anteriores, su figura debe tener el tamaño correcto para imprimir.

¡Feliz conspiración!

Como se explicó en @LewisNorton , debe establecer las propiedades de Paper*** de la figura. A continuación se muestra un ejemplo para producir un archivo PDF con dimensiones de 420 x 297 mm (tamaño A3), donde los márgenes entre la ttwig y los bordes del archivo son de 10 mm cada uno (arriba, abajo, izquierda, derecha).

 %# centimeters units X = 42.0; %# A3 paper size Y = 29.7; %# A3 paper size xMargin = 1; %# left/right margins from page borders yMargin = 1; %# bottom/top margins from page borders xSize = X - 2*xMargin; %# figure size on paper (widht & hieght) ySize = Y - 2*yMargin; %# figure size on paper (widht & hieght) %# create figure/axis hFig = figure('Menubar','none'); plot([0 1 nan 0 1], [0 1 nan 1 0]), axis tight set(gca, 'XTickLabel',[], 'YTickLabel',[], ... 'Units','normalized', 'Position',[0 0 1 1]) %# figure size displayed on screen (50% scaled, but same aspect ratio) set(hFig, 'Units','centimeters', 'Position',[0 0 xSize ySize]/2) movegui(hFig, 'center') %# figure size printed on paper set(hFig, 'PaperUnits','centimeters') set(hFig, 'PaperSize',[XY]) set(hFig, 'PaperPosition',[xMargin yMargin xSize ySize]) set(hFig, 'PaperOrientation','portrait') %# export to PDF and open file print -dpdf -r0 out.pdf winopen out.pdf 

screenshot_MATLABscreenshot_PDF

Sin una impresora a la mano, estoy usando una regla de pantalla virtual para verificar las medidas; Simplemente visualice el archivo PDF con su visor preferido, y configure el nivel de zoom al 100% (estoy usando Sumatra PDF ). Si quieres probar esto tú mismo, ten en cuenta que algunos espectadores ( Adobe Reader ) pueden estar utilizando un DPI personalizado que no coincida con la resolución predeterminada del sistema (el mío a 96 píxeles / pulgada).

Aquí puede ver los márgenes inferior e izquierdo igual a 10mm . Lo mismo vale para los otros dos márgenes:

margins_1cm

Tenga en cuenta que en el ejemplo anterior, hice que el eje cubra la figura completa (no hay área gris en la figura). Por defecto, MATLAB deja un espacio vacío para tags de ticks, tags de ejes, títulos, etc. Esto es, por supuesto, diferente de los márgenes mencionados anteriormente, que supongo que ya sabes 🙂

Descargar export fig (Requiere Ghostscript ).

Intenta ejecutar:

  surf(peaks);title('voila');export_fig 'test.pdf'; 

Cuando use Adobe para imprimir el archivo pdf, configure ‘Escala de página’ en ‘Ajustar al área imprimible’.

Si desea una forma personalizada (por ejemplo, para un diagtwig largo y delgado o para un gráfico cuadrado para incluir en otro archivo), configure las opciones PaperSize y PaperPosition .

 set(gcf, 'PaperSize', [30 10], 'PaperPosition', [0 0 30 10]) print -pdf filename