Contagem por factor de gráfico ggplot2
Pergunta
Dada a seguinte tabela ggplot2:
ggplot(my_data, aes(colour=my_factor) +
geom_point(aes(x=prior, y=current)) +
facet_grid(gender ~ age)
Gostaria de fazer o tamanho dos pontos de ser proporcional à contagem de my_factor para essa combinação prévia / atual.
ggplot(my_data, aes(colour=my_factor,
size=<something-here>(my_factor)) +
geom_point(aes(x=prior, y=current)) +
facet_grid(gender ~ age)
Todas as idéias?
== Editar ==
Aqui está um exemplo muito trivial baseado em conjunto de dados mpg. Vamos definir "great_hwy" como hwy> 35, e "great_cty" como cty> 25:
mpg$great_hwy[mpg$hwy > 35] <-1
mpg$great_hwy[mpg$hwy <= 35] <-0
mpg$great_hwy <- factor(mpg$great_hwy)
mpg$great_cty[mpg$cty > 25] <- 1
mpg$great_cty[mpg$cty <= 25] <- 0
mpg$great_cty <- factor(mpg$great_cty)
Se marcamos great_cty vs. great_hwy, não vai nos dizer muito:
ggplot(mpg) + geom_point(aes(x=great_cty, y=great_hwy))
Como eu poderia fazer os pontos de dados maior em tamanho dependendo do número de x / y pontos? Espero que isso limpa-lo, mas deixe-me saber o contrário.
Solução
Você pode certamente fazer isso contando externo para ggplot, mas uma das grandes coisas sobre ggplot é que você pode fazer muitas dessas estatísticas internamente!
Usando o seu exemplo mpg acima:
ggplot(mpg) +
geom_point(aes(x=great_cty, y=great_hwy,
size=..count..), stat="bin")
Outras dicas
Porque a resposta aceita usa um recurso substituído vou salientar esta resposta alternativo que funciona para ggplot2 1.0.1