2010-09-20 29 views
15

Estoy empezando con R y comenzando a comenzar a producir gráficos. Soy consciente de que hay al menos tres paquetes de trazado diferentes, el estándar, ggplot2 y celosía.Relación entre los paquetes de ploteo en R

¿Son estos paquetes complementarios, o cubren casi el mismo terreno? Si son complementarios, ¿cuándo los uso? Si cubren el mismo terreno, ¿cuál debería yo, como nuevo usuario de R, poner mi energía en el dominio?

Respuesta

23

Hay 4 sistemas de trazado. Hay estándar, cuadrícula, celosía y ggplot2. Los dos últimos son sistemas de nivel superior construidos sobre los dos anteriores. Cada uno tiene ventajas y desventajas.

Los gráficos estándar le dan un control absoluto sobre las tramas y es genial para hacer una trama de la manera que desee. Lattice fue desarrollado para abordar situaciones en las que desea matrices de parcelas. Es muy flexible y puede trazar casi cualquier función sobre sus datos y sobre cualquier variable. Si desea que se aplique una función arbitraria a los datos de cada sujeto y que se presente como una cuadrícula de tramas, el enrejado es su bebé. Está construido en cuadrícula y es casi la única forma en que alguien usa el paquete de grillas.

La última, ggplot2, es a la vez un paquete de gráficos y una nueva filosofía en gráficos. Está basado en "The Grammar of Graphics" de Wilkinson e intenta hacer exactamente eso, generar una gramática para gráficos. Uno simplemente tiene que aprender la sintaxis de términos de nivel superior como geom (lo que tramas), stat (estadísticas de los datos), faceta (paneles individuales), y puedes construir gráficos muy complejos. Por lo general, salen encantadores, especialmente para la distribución electrónica. Desafortunadamente, el control preciso de cada detalle individual no está disponible. Hay ciertas cosas que simplemente no puedes ajustar. Dicho esto, muchos han llegado a la conclusión lógica de que es un pequeño precio a pagar por la manera fácil de describir parcelas de alta calidad.

Tener un vistazo a algunos de los gráficos por defecto y ejemplo para ggplot2. Si te atraen, te sugiero que comiences allí. Si puede, trate de aprender a hacer todo a través del método básico de la gramática. Personalmente creo que es un error que Hadley tenga las funciones de conveniencia como principal ayuda en el sitio web. Parece socavar el propósito de ggplot2. Una sintaxis abreviada se presenta como la interfaz principal para la ayuda pero el libro tiene que ver con la filosofía y la gramática fundamental.

(digo eso, pero me hacen la mayor parte de mi trazado de gráficos de base porque lo encuentro divertido edificio cada componente individual de los gráficos.)

+0

que detalla, en particular, ¿se refiere a que no puede ser controlado con ggplot2? Estoy de acuerdo en que hay muchas opciones "ocultas", pero definitivamente están ahí. (theme_get(), por ejemplo) –

+0

Supongo que podría ampliar eso aún más ... Hay un nivel en el que ggplot está bien documentado y se usa para el cual el control es mínimo. Luego hay otro donde hay un poco más, una vez que encuentras muchas de las opciones ocultas ... y luego hay cosas que simplemente no puedes controlar como facetas irregulares o la resolución y la parcialidad de las funciones de suavizado (¿qué pasa si quiero llenar la parte superior? rojo e inferior azul?). Realmente no puedo enumerar todo lo que no puedes controlar. No estoy seguro de si esto se cambió, pero algo tan simple como la compensación de etiquetas del eje * fue * imposible. – John

+1

Dicho esto, yo creo que maneja el 95% + de gráficos mejor que las personas podían manejar por sí mismos y que estos son temas relativamente esotéricos para muchos. – John

7

Los tres paquetes son en realidad tres conceptos de trazado diferentes. El dispositivo de trazado estándar pasa rápido si sabes lo que estás haciendo, y es -en mi opinión- bastante intuitivo en el sentido de que todos los comandos tratan con elementos particulares de un gráfico (trama, título, eje, etiquetas, leyenda, etc.). .). Estos gráficos son bastante flexibles en el diseño, y los considero útiles para la mayoría de los gráficos estadísticos estándar y gráficos 2D bastante sencillos.

Lattice es un dispositivo de trazado basado en cuadrícula que permite mucha más flexibilidad. Básicamente puede trazar todo lo que desee, como se muestra en el R Graph Gallery. Los gráficos también pueden ser anotados. El enrejado es, de nuevo, en mi opinión, muy útil para gráficos personalizables de alta gama. Lo uso principalmente cuando estoy haciendo mapas de color, visualizaciones 3D y gráficos combinados de diferentes subconjuntos de mis datos (por ejemplo, en la construcción de modelos, para los efectos de los diferentes términos). Consulte también Using lattice graphics in R.

ggplot2 es en realidad un intento de combinar lo bueno de ambos sistemas: conserva la mayor parte de la flexibilidad del enrejado, pero trabaja en objetos gráficos fácilmente definidos como lo hace con el trazado estándar. La salida gráfica es, en general, más atractiva que la configuración estándar en el paquete estándar, y con menos complicaciones que con celosía. Personalmente, tengo muy poca experiencia con ggplot2, pero definitivamente parece prometedor. Todavía prefiero el paquete de gráfico base, pero eso probablemente tiene más que ver con el hecho de que estoy acostumbrado a eso. Viejos monos y nuevos trucos y todo eso ...

Básicamente, yo diría que es lo que te hace sentir más cómodo. Definitivamente aprendería al menos los conceptos básicos del paquete estándar, pero a partir de ahí supongo que ggplot2 te brinda todo lo que necesitas si no vas a entrar en gráficos de alto perfil. Si realmente desea hacer gráficos complejos personalizados, conocer enrejado solo puede ayudarlo. Pero, de lo contrario, los otros dos proporcionan todo lo que necesita y son bastante sencillos de usar.

+0

Gracias por la respuesta en profundidad. Solo una pregunta: ¿a qué te refieres con 'gráficos de alto perfil'? – fmark

+0

sólo un término para nombrar los gráficos complejos de lujo muy a futuro que se pueden encontrar en la Galería Gráfico por ejemplo. Mi elección de palabras no siempre es la mejor, ya que el inglés no es mi lengua materna. –

+0

Gracias por la aclaración. – fmark

Cuestiones relacionadas