2012-07-17 13 views
5

He realizado 2 diagramas de burbujas llamados beta y km. Me gustaría comparar las parcelas una al lado de la otra, pero la escala_area parece ser diferente, lo que hace que sea difícil comparar visualmente 2 parcelas basadas en el tamaño de las burbujas.ggplot2: cómo ajustar manualmente scale_area

Si observa las leyendas en los trazados a continuación, las escalas son diferentes. Creo que es porque el valor más alto de BiasAM en el conjunto de datos betaGSD5 ~ 64 y kmGSD5 data = 100.

¿Cómo puedo cambiar manualmente el scale_area de modo que la escala de betaPlot coincida con la escala de kmPlot?

¿También es posible configurar manualmente los saltos de leyenda? En lugar de generarse automáticamente, ¿puedo especificar la leyenda, pero así lo deseo? 0-10, 10-30, 30-50 , 50-70, 70-100 ,

betaGSD5 datos: https://dl.dropbox.com/u/63947093/betaGSD5.csv

datos kmGSD5: https://dl.dropbox.com/u/63947093/kmGSD5.csv

Aquí está el código de la trama beta

betaPlot <- ggplot(betaGSD5, aes(N,PctCens,size=BiasAM,label=NULL)) + 
    geom_point(colour="red", shape=16) +scale_area(to=c(1,10)) + 
    xlab("Sample size") + ylab("Percent censored") + 
    xlim(0,100)+ ylim(0,100) + 
    theme_bw()+ 
    opts(
#legend.position='none', 
    panel.grid.minor = theme_blank(), 
    panel.background = theme_blank(), 
    axis.ticks = theme_blank(), 
    axis.title.x=theme_text(face='bold',vjust=0.2, size =12), #size=15 #hjust:move  horizonal, vjust-move verticall 
    axis.title.y=theme_text(face='bold',angle=90, vjust=0.2,size =12)) 
print(betaPlot) 

enter image description here

parcela KM

kmPlot <- ggplot(kmGSD5, aes(N,PctCens,size=NewBiasAMpct,label=NULL)) + 
    geom_point(colour="red", shape=16) +scale_area(to=c(1,10)) + 
    xlab("Sample size") + ylab("Percent censored") + 
    xlim(0,100)+ ylim(0,100) + 
    theme_bw()+ 
    opts(
     #legend.position='none', 
    panel.grid.minor = theme_blank(), 
    panel.background = theme_blank(), 
    axis.ticks = theme_blank(), 
    axis.title.x=theme_text(face='bold',vjust=0.2, size =12), #size=15 #hjust:move  horizonal, vjust-move verticall 
    axis.title.y=theme_text(face='bold',angle=90, vjust=0.2,size =12)) 

print(kmPlot) 

enter image description here

+0

Tenga una mirada en '' scale_area' y continuous_scale' – mnel

+0

@mnel:?? Lo hice. No muy útil. – Amateur

+0

@Amateur, ¿qué no sirvió? ¿Qué no entendiste? –

Respuesta

9

Si los quieres de lado a lado y luego es muy fácil. Sólo combinar conjunto de datos y el uso de facet_wrap()

ggplot(dataset, aes(x = N, y = PctCens, size = BiasAM, label = NULL)) + 
    geom_point(colour="red", shape = 16) + 
    scale_size_area(limits = c(1, 10), breaks = c(0, 10, 30, 50, 70, 100)) + 
    scale_x_continuous("Sample size", limits = c(0, 100)) + 
    scale_y_continuous("Percent censored", limits = c(0, 100)) + 
    facet_wrap(~ Method) + 
    theme_bw() + 
    theme(
    panel.grid.minor = element_blank(), 
    panel.background = element_blank(), 
    axis.ticks = element_blank(), 
    axis.title.x = element_text(face = 'bold', vjust = 0.2, size = 12), 
    axis.title.y = element_text(face = 'bold', angle = 90, vjust = 0.2, size = 12) 
) 

enter image description here

+0

Muchas gracias. – Amateur

+0

Esto es genial, exactamente lo que necesitaba. Pero estoy teniendo problemas con los errores de depreciación de ggplot (la leyenda se rompe especialmente). ¿Hay una versión actualizada de este código para el nuevo ggplot? – Vinterwoo

+1

el código se actualiza y funciona en ggplot2 0.9.3.1 – Thierry

Cuestiones relacionadas