Quiero ampliar un poco la respuesta de Dianne Cook. Como ella dijo, ggplot2 es para crear gráficos estáticos, ggvis es para gráficos interactivos. Hay un montón de implicaciones para eso:
Tipo de archivo La salida de ggvis es HTML, incluyendo archivos CSS y javascript. ggvis no produce naturalmente archivos de imagen ordinarios. ggplot2 produce imágenes ordinarias, que pueden ser incrustadas en HTML o pdf o gif o enviadas por correo electrónico, o cualquier otra cosa. ggvis, si quiere enviar el archivo por correo electrónico, está comprimiendo un directorio de archivos HTML para ser visto en un navegador.
Animación Una consecuencia de esto es que si quieres crear una animación, puedes hacer los fotogramas en ggplot2 y fusionarlos, pero no hay una forma natural de hacer esto con ggvis. ggvis actuando interactivamente animará "en vivo", pero estos son diferentes tipos de animación. Si hay más cosas por fotograma de las que ggvis puede procesar, no se puede trabajar alrededor de eso (al menos de una manera natural) generando las imágenes y haciendo la película en el fondo. Del mismo modo, el usuario no puede descargar una película o un archivo gif de ggvis para reproducirlo.
Ahora mismo, en mi proyecto actual, he cambiado de ggplot2 a ggvis porque ggplot2 era demasiado lento para animar de forma interactiva. Pero, también me gustaría que el usuario, después de jugar con la configuración, sea capaz de hacer clic en "ir" y descargar una película de velocidad completa, la animación suave de lo que hicieron. No he descubierto cómo hacer esto usando ggvis, pero sería muy fácil usando ggplot2.
Velocidad ggvis es mucho, mucho, mucho más rápido que ggplot2, especialmente cuando se cambian los datos. Cada parcela de ggplot2 tiene un segundo o unos pocos de retraso. ggvis tiene un segundo más o menos cuando se crea la parcela por primera vez, después de que el cambio de los datos es perfecto - ggvis puede ser "reactivamente" vinculado a los datos por lo que se actualiza cada vez que los datos cambian. Con ggplot2, toda la parcela va a ser redibujada.
Estilo y apariencia Los gráficos de ggplot2 parecen un poco más bonitos, a primera vista, que los de ggvis. Los gráficos de ggplot2 son bastante elegantes. Los de ggvis son más sencillos, pero están creciendo en mí. También hay extensiones para ggplot2, como los paquetes xkcd y wesanderson, donde no hay ningún análogo para ggvis. Los trazados de ggplot2 parecen todos hechos por la misma persona (el autor de ggplot2) y eso cansa después de un tiempo.
Completitud Hay tipos de gráficos que se pueden crear en ggplot2 que ggvis no soporta, al menos hasta ahora. Por ejemplo, no hay ningún elemento de trazado "rug" en ggvis. He visto uno o dos choropleths que se hicieron con ggvis, pero no hay soporte natural incorporado todavía. ggplot2 tiene coordenadas polares (es decir, gráficos de pastel), ggvis no. También faltan en ggvis (y están disponibles en ggplot2 o en una extensión de ggplot2): boxplots; gráficos de contorno; heatmaps naturales; gráficos de correlación natural; dotplots; gráficos de violín; gráficos de red; dendrogramas. Por supuesto, estoy seguro de que algunas personas muy inteligentes pueden crear todo esto en ggvis, pero yo no soy tan inteligente.
Anotaciones ggplot2 tiene un marco de anotaciones muy bueno, quizás infrautilizado, pero ggvis no.
Subtramas y facetas ggplot2 tiene una función de "facetado" muy agradable, aunque quizás bastante limitada. También puede combinar varios gráficos ggplot2 utilizando el paquete grid. Los gráficos de ggvis no pueden combinarse en una sola imagen (porque no son imágenes, son páginas web "en vivo"), y no soporta ningún tipo de facetado o subtrazado. Se supone que esto está en proyecto.
Flexibilidad visual ggplot2 quiere que todos los trazados tengan el mismo aspecto, es decir, como el autor prefiera estilísticamente. No hay manera, por ejemplo, de tener un gráfico con múltiples ejes y en ggplot2. ggvis puede. ggvis es mucho más flexible que ggplot2. Es mucho más fácil hacer cosas como ocultar las leyendas, combinar múltiples leyendas en una, utilizar diferentes escalas para diferentes cosas en el mismo gráfico, etc.
Gran capacidad de personalización Si quieres crear, por ejemplo, una nueva escala inteligente, no es también difícil de hacer en ggplot2 (aunque es bastante confuso). Simplemente no parece haber una manera de hacer mucho de eso en ggvis. Tal vez es sólo que no es todavía.
Series temporales A ggplot2 no le gusta trazar series temporales. Es puede pero no lo hace quieren . En realidad, ninguno de ellos quiere hacerlo; ambos insisten en que se les suministren datos en un data.frame, y no pueden manejar objetos xts o zoo. Tampoco tienen características incorporadas para cortar una serie de tiempo. Pero ggvis no se defiende de las series temporales con tanta fuerza como ggplot2. Esto se debe en parte a que es muy rápido actualizar los datos en un gráfico ggvis, supongo. Si usted quiere trazar una serie de tiempo que va a tener que golpear a la sumisión, pero ggvis es mucho menos pasivo-agresivo al respecto.
¿Son la misma sintaxis? Más o menos... Hay mucho en común entre ellos, y aprender a piense en en el estilo de uno ayudará a adaptarse al estilo del otro. En particular, ambos están diseñados para que todas las llamadas de trazado se canalicen entre sí en una sola línea de código. La principal ventaja de esto es que hace que la depuración y el perfilado sean realmente difíciles, y básicamente hace que las características de depuración/perfilado en cosas como Rstudio sean inútiles. Aparte de eso, son sintácticamente muy diferentes. Algunas cosas que son difíciles en ggplot2 son fáciles en ggvis. Algunas cosas que son fáciles en ggplot2 son imposibles en ggvis. Y viceversa. (Tengo un poco de preferencia por la forma en que ggvis hace las cosas, que me parece más fácil de entender).
Bugs ggvis todavía tiene bastantes. A veces se comporta de forma extraña. A veces, sin embargo, las parcelas desaparecen aleatoriamente por razones que toman horas para resolver y tienen muy poco sentido. Los desarrolladores admiten esto libremente, ggvis no está listo para la producción todavía. Si se trata de cualquier complejidad, usted se descubrir que no están bromeando.
El resultado final: El aprendizaje del trazado intermedio en cada uno de ellos lleva unas 16 horas. Así que, siendo realistas, es probable que aprendas ambas cosas.
5 votos
Ggvis es un asunto totalmente diferente. La verdadera alternativa está entre ggplot y celosía .
1 votos
Creo que la respuesta depende de lo que se busque. Si buscas parcelas estáticas avanzadas, querrás aprender
ggplot2
. Para la visualización en la web, considereggvis
.