2011-12-12 28 views
13

¿Cómo exporto una versión de nuevo tamaño de la salida que recibo de una llamada al GraphPlot (o TreePlot si producen resultados diferentes) a un archivo jpg?
Actualmente, simplemente llamo a Export[file_name, G] donde G es el resultado de una llamada a algo como GraphPlot. Estoy usando Microsoft Office Picture Manager para ver los jpgs, pero volver a escalarlos produce resultados insatisfactorios debido a la mala resolución (el gráfico que intento trazar tiene cadenas como etiquetas que no se pueden distinguir después reescalando de esta manera). Me gustaría poder elegir el tamaño/resolución del jpg renderizado.¿Cómo exporto una imagen de resolución más alta de un objeto de gráfico de Mathematica?

+4

¿Tiene que usar un archivo JPG? Podría ser mejor usar una [imagen basada en vectores] (http://reference.wolfram.com/mathematica/guide/VectorGraphicsFormats.html) en lugar de una [rasterizada] (http://reference.wolfram.com/mathematica/ guía/RasterImageFormats.html) uno. – Simon

Respuesta

15

Como Simon ya se ha señalado, no utilice una trama de formato para unos gráficos vectoriales. En su lugar, exporta tu parcela a, p. unos gráficos vectoriales escalables:

graph = GraphPlot[ExampleData[{"Matrix", "HB/can_292"}, "Matrix"]]; 
Export["graph.svg", graph] 

La ventaja es que, en una imagen así, es posible ajustar y líneas, polígonos de cambio y colores. Y finalmente, puede exportarlo fácilmente a una imagen de calidad arbitraria.

enter image description here

Y recuerda, para las parcelas que contienen líneas, polígonos, ... todo con bordes afilados que nunca se debe utilizar jpg. Hablando en términos generales, este es un formato para fotografías solo porque su compresión se hace para reducir el tamaño del archivo en imágenes naturales. En esas imágenes no reconoce la compresión, en las imágenes con texto, líneas y polígonos, seguramente notará los artefactos. Use png si es posible. Toma tu navegador y haz zoom en la imagen de arriba.

+1

también consideran EPS, PDF y (en Windows) EMF, dependiendo de sus requisitos. – Verbeia

+0

Sí, todos los demás formatos de vectores son tan buenos como svg. Mencioné svg explícitamente porque con Inkscape (http://inkscape.org/) tienes un programa de dibujo de código abierto. – halirutan

+0

Estrictamente hablando, en general, los campos electromagnéticos son peores que los PDF y EPS porque muestra gráficos vectoriales con fidelidad a la resolución de pantalla y porque no puede insertar fuentes. –

12

es posible ajustar el tamaño de la imagen y el nivel de compresión del archivo exportado haciendo algo como

Export[file_name, G, ImageSize -> 1200, "CompressionLevel" -> 0] 
+0

La opción '" CompressionLevel "' es principalmente para formatos con pérdida como JPG, produce grandes archivos. Mucho mejor es usar formatos sin pérdida como PNG para ilustraciones con colores lisos y bordes nítidos: el archivo es mucho más pequeño, la calidad es perfecta. Y aún mejor para cambiar a un formato vectorial: PDF o EPS. –

8

La mejor manera que encuentro es usar la propiedad ImageResolution. Aumenta la resolución de la imagen exportada, pero no cambia la escala. Utilizar de esta manera:

Export[ "image-file-name.png", image, ImageResolution -> 500 ] 
0

establecer el tamaño de la gráfica antes de exportarlo: Gráfico [theGraph, ImageSize-> 2000]

Cuestiones relacionadas