Korzystanie ggplot wykreślić proporcjonalnych symbole powierzchnia wydaje się wymagać korzystania sqrt()
osiągnąć prawdziwą proporcjonalność:Proporcjonalnie wielkości symboli ggplot
require(ggplot2)
t <- data.frame(x=rep(c(1:5),5), y=rep(c(1:5),each=5), s=round(seq(1,100,length.out=25)))
t
p <- ggplot(data=t, aes(x=x,y=y))
# direct size-to-variable mapping
p + geom_point(aes(size=s), pch=22, fill='#0000FF75', col=NA) +
scale_size(range = c(1, 40)) +
geom_text(data=t, aes(x=x,y=y,label=s),size=3,vjust=1)
# proportional area size-to-variable mapping
p + geom_point(aes(size=sqrt(s)), pch=22, fill='#0000FF75', col=NA) +
scale_size(range = c(1, 40)) +
geom_text(data=t, aes(x=x,y=y,label=s),size=3,vjust=1)
Jak widać etykiety są zakorzenione kiedy potrzeba im pokaż oryginalne dane. Próbowałem grać z opcjami scale_size, ale nic nie działa. Ktoś wie na ten temat, czy może jest jakieś niejasne ustawienie, aby uzyskać mapowanie proporcjonalnego rozmiaru obszaru?
Z góry dziękuję.
Dzięki @Andrie to rozwiązało. Zmieniłem tytuł tego pytania, aby odzwierciedlić rozwiązanie. – geotheory
To jest teraz 'scale_size_area' jako' scale_area' jest przestarzałe. – geotheory