Como alguém supera pontos sobrepostos sem jitter ou transparência em ggplot2
-
21-09-2019 - |
Pergunta
Estou começando a usar GGPlot2. Eu tenho alguns pequenos dados granulares N (cerca de 30 ou mais) com muita sobreposição. Nem o jitter nem o alfa (transparência) são adequados. Em vez disso, um stritchart com pilha e deslocamento faz melhor, mas não sei como fazer no GGPlot2. Você sabe?
Para ver qual o resultado final deve ser clicar nisso gráfico.
Aqui está o roteiro que usei há alguns anos atrás.
stripchart(SystData$DayTo1Syst~SystData$strain,vertical=TRUE,method="stack",pch=19,offset=.3,xlab="Strain",main="Rapidity of Systemic Disease Onset",ylab="Days post inoculation")
Solução
# your data
df <- data.frame(gp = rep(LETTERS[1:5], each =8), y = sample(1:4,40,replace=TRUE))
# calculate offsets
df <- ddply(df, .(y, gp), transform, offset = (1:length(gp)-1)/20)
qplot(gp, y, data=df) + stat_identity(aes(as.numeric(gp)+offset)) + theme_bw()
Outras dicas
Você pode usar position_dodge
.
df <- data.frame(gp = rep(LETTERS[1:5], each =8),
y = sample(1:4,40,replace=TRUE))
qplot(gp,y,data=df,order=y,position=position_dodge(width=0.5))
ALT TEXTO http://img100.imageshack.us/img100/8760/dodgel.png
Você quer usar geom_dotplot de GGPlot2
Você provavelmente vai querer usar:
ggplot(insert your arguments here) + geom_dotplot(binaxis = "y", stackdir = "center")
Espero que isto ajude. Os resultados parecerão realmente limpos, o que eu acho que você deseja.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow