2011-05-16 11 views
29

¿Hay alguna manera de trazar gráficos antialias desde la versión de Windows de R? Como se puede ver en las dos versiones anteriores a la versión Mac de grabados R gráficos contra alias .... Mac VersionAnti-aliasing en gráficos R en Windows (como por Mac)

.... mientras que mientras que el texto versión de Windows anti-alias, no anti-alias el actual gráfico, como puede verse a partir de los puntos de subida, y la red: Windows Version

Este es el código por cierto:

library(scatterplot3d) 
attach(mtcars) 
s3d <-scatterplot3d(wt,disp,mpg, pch=16, highlight.3d=TRUE, 
    type="h", main="3D Scatterplot") 
fit <- lm(mpg ~ wt+disp) 
s3d$plane3d(fit) 

necesito la mayor calidad posible, para la página web de la publicación. Estoy ejecutando Windows 7 y extrayendo datos de RBloomberg, que solo funciona en Windows.

Respuesta

18

Esto probablemente dependa de los detalles del motor de renderizado en cada plataforma, lo que podría ser difícil de modificar. Mis sugerencias (no probados, por falta de tiempo y el acceso a Windows):

  • instalar el paquete cairoDevice y utilizan Cairo_png(). De acuerdo con la documentación:
This functions the same as any other R graphics device. You may 
use the conventional plot commands and expect essentially the same 
output, except that everything is anti-aliased (similar to other 
vector-based devices like Quartz). Alpha-blending is supported, as 
is enhanced interactivity via ‘getGraphicsEvent’. The device 
should work the same across all supported platforms (Mac, Windows, 
and Linux). 
  • Prestar al PNG con una resolución mucho más alta (o datos de salida a partir de R como PDF) y el uso de ImageMagick (convert) o alguna otra herramienta para obtener el versión anti-aliased que necesita.
+0

También puede emitir como SVG con Cairo, que puede proporcionar una salida superior. – James

+0

Tengo (finalmente) tengo esto funcionando. Pero, ¿hay alguna forma de guardar archivos o copiar y pegar, desde la imagen de la pantalla, como se puede hacer con el dispositivo estándar? Gracias. –

+0

Una vez que cairoDevice está instalado, puede simplemente llamar a Cairo() para una ventana de trazado que está suavizada en MS Windows. –

9

Utilice un dispositivo vectorial como pdf. Primero asegúrese de tener esa capacidad y, por lo tanto, no sorprende que la función capabilities sea lo que debe verificar. Si tiene pdf, simplemente haga esto:

pdf(file="out_graph.pdf") 
s3d <-scatterplot3d(wt,disp,mpg, pch=16, highlight.3d=TRUE, 
    type="h", main="3D Scatterplot") 
fit <- lm(mpg ~ wt+disp) 
s3d$plane3d(fit) 
dev.off() 

Una alternativa para la salida web podría ser el dispositivo de gráficos png(). Obtiene altas calificaciones por compacidad y compatibilidad con navegadores web a pesar de que es un formato de trama.

+1

@DWin: la imagen dada por OP es el formato png ... –

+0

@Joris ... Pensé que la interfaz SO podría haber elegido un formato por sí misma. No creo que tome mis pdf y los mantiene en ese formato cuando los cargo. (Pero podría estar en un error aquí.) –

+0

El OP dijo que los necesita para la visualización web, por lo que probablemente necesite un formato de trama. –

1

No es necesario ir a través de archivos, puede instalar cairoDevice sencilla como se sugiere por Ben Bolker, y luego llamar a la función Cairo() que le dará una ventana de diagrama completamente suavizado bajo Windows (más lenta aunque).

7

La instalación de cairoDevice ya no es necesaria para utilizar Cairo con dispositivos png. Ahora puede especificar type='cairo' al abrir el dispositivo. Compare los siguientes:

png('test1.png', 500, 500) 
s3d <- scatterplot3d(wt,disp,mpg, pch=16, highlight.3d=TRUE, 
        type="h", main="3D Scatterplot") 
fit <- lm(mpg ~ wt+disp) 
s3d$plane3d(fit) 
dev.off() 

enter image description here

png('test2.png', 500, 500, type='cairo') 
s3d <- scatterplot3d(wt,disp,mpg, pch=16, highlight.3d=TRUE, 
        type="h", main="3D Scatterplot") 
fit <- lm(mpg ~ wt+disp) 
s3d$plane3d(fit) 
dev.off() 

enter image description here

estoy corriendo Win 8.1, y 64-bit R 3.2.2.

Cuestiones relacionadas