Como descubriste, no hay una solución fácil para esto, pero surge mucho. Dado que este tipo de cosas se hacen con tanta frecuencia, me resulta útil explicar por qué es difícil y sugerir una posible solución.
Mi experiencia ha sido que la gente que viene a ggplot2 o celosía gráficos fundamentalmente malinterpretar el propósito de facetas (o espalderas, en celosía). Esta característica fue desarrollada con una idea muy específica en mente: la visualización de datos a través de múltiples grupos que comparten una escala común. Viene de algo llamado principio de pequeños múltiplos, propugnado por Tufte y otros.
Colocar los paneles uno al lado del otro con escalas muy diferentes es algo que los expertos en diseño visual tenderán a evitar, ya que puede ser, en el mejor de los casos, engañoso. (No te estoy regañando aquí, solo explicando el razonamiento ...)
Pero, por supuesto, una vez que tienes esta gran herramienta a la vista, nunca sabes cómo la van a usar. Por lo tanto, se alarga: las solicitudes entran en la capacidad de permitir que las escalas varíen según el panel, y establecer varios aspectos de la gráfica por separado para cada panel. Y así faceting en ggplot2 se ha ampliado mucho más allá de su intención original.
Una consecuencia de esto es que algunas cosas son difíciles de implementar simplemente debido a la intención original del diseño de la función. Esta es probablemente una de esas instancias.
Ok, suficiente explicación. Aquí está mi solución.
El truco aquí es reconocer que no están trazando gráficos que comparten una escala. Para mí, eso significa que ni siquiera deberías pensar en usar facetas. En su lugar, hacer que cada parcela por separado y colocarlos juntos en una parcela:
library(gridExtra)
p1 <- ggplot(subset(melted.df,variable == 'dollars'),
aes(x = value)) +
facet_wrap(~variable) +
geom_density() +
scale_x_log10(labels = dollar_format())
p2 <- ggplot(subset(melted.df,variable == 'counts'),
aes(x = value)) +
facet_wrap(~variable) +
geom_density()
grid.arrange(p1,p2)
yo sólo he adivinado lo que geom_*
desea utilizar, y estoy seguro de que esto no es realmente lo que quería trazar, pero al menos ilustra el principio.
no es fácil, creo ... –
Sí. Shucks. Acabo de encontrar este enlace donde alguien tenía un problema similar: http://comments.gmane.org/gmane.comp.lang.r.ggplot2/4496. –
Probablemente sea más fácil hacer dos parcelas separadas y organizarlas juntas. –