quiero lograr los siguientes resultados:Gráfico de burbuja para variables enteras donde la burbuja más grande tiene un diámetro de 1 (en la escala del eje xo y)
- reescalar el tamaño de las burbujas de tal manera que la más grande de la burbuja tiene un diámetro de 1 (en lo que tiene la escala más comprimido de la x y ejes Y).
- reescalar el tamaño de las burbujas de tal manera que la burbuja más pequeña tiene un diámetro de 1 mm
- tienen una leyenda con el primer y último puntos de la no-cero de frecuencia mínima y la frecuencia máxima.
Lo mejor que he podido hacer es lo siguiente, pero necesito una solución más general en la que se calcule el valor de maxSize en lugar de código fijo. Si lo estuviera haciendo en los trazados R tradicionales, usaría par ("pin") para calcular el tamaño del área de trazado y trabajar hacia atrás, pero no puedo entender cómo acceder a esta información con ggplot2. ¿Alguna sugerencia?
library(ggplot2)
agData = data.frame(
class=rep(1:7,3),
drv = rep(1:3,rep(7,3)),
freq = as.numeric(xtabs(~class+drv,data = mpg))
)
agData = agData[agData$freq != 0,]
rng = range(agData$freq)
mn = rng[1]
mx = rng[2]
minimumArea = mx - mn
maxSize = 20
minSize = max(1,maxSize * sqrt(mn/mx))
qplot(class,drv,data = agData, size = freq) + theme_bw() +
scale_area(range = c(minSize,maxSize),
breaks = seq(mn,mx,minimumArea/4), limits = rng)
Aquí es lo que parece hasta ahora:
¿Cómo se llega a "20" para el 'maxSize' en su ejemplo? – A5C1D2H2I1M1N2O1R2T1