ggplot2 wizualizuje liczbę punktów narysowanych jeden na drugim: stat_bin2d lub geom_tile lub rozmiar punktu?
Mój problem jest prosty: mam kilka punktów ze współrzędnymi x, y, które są umieszczone wewnątrz prostokątnej siatki złożonej z 1x1 kwadratów. Punkty te mają uśrednione współrzędne, tak że kilka punktów ma te same współrzędne (nakładają się całkowicie). Powtarzalny przykład:
# generate fake data
y <- seq(from=0.5, to=9.5, by=1)
x <- seq(from=0.5, to=4.5, by=1)
xnew <- sample(x,100,replace=T)
ynew <- sample(y,100,replace=T)
data <- data.frame(xnew,ynew)
# create chart
ggplot(data, aes(x=xnew, y=ynew)) + geom_point()
Chcę przedstawić częstotliwość punktów w określonym miejscu (współrzędne x, y, reprezentujące konkretny kwadrat).stat_bin2d
jest krokiem we właściwym kierunku, ale pojemniki są niewytłumaczalnie (dla mnie) umieszczane w różnych miejscach na mapie, co utrudnia wizualną dystrybucję.
Mogę sobie wyobrazić dwa różne rozwiązania:
1) Czy istnieje sposób na wyśrodkowanie pojemników na punktach? Czasami dolny lewy róg znajduje się w punkcie, czasami w prawym dolnym rogu itp. W ten sposób:
Dodatkowo byłoby idealnie, gdyby pudełka były wystarczająco duże, aby się stykać, ale kiedy zmieniambinwidth=c(1,1)
wstat_bin2d()
, faktycznie zmienia liczniki, chociaż pojemniki nie powinny się nakładać, ponieważ wszystkie punkty są oddalone od siebie o co najmniej 1 kwadrat.
lub, używając rozmiarów punktów:
2) Wolałbym, aby punkty, których rozmiar odzwierciedlałby koncentrację (w ten sposób byłyby też lepsze w czerni i bieli). Próbowałem z geom_point ():
ggplot(data, aes(x=xnew, y=ynew))+geom_point(aes(x=xnew,y=ynew, size=..count..))
ale mam
Error in eval(expr, envir, enclos) : object 'count' not found
a następnie, jeśli dodam `stat =" bin ", powoduje to konflikt z przypisaniem do y. Spojrzałem tutaj:Dlaczego ggplot2 nie pozwala mi ustawić rozmiaru dla każdego pojedynczego punktu?, ale nie był w stanie go uruchomić.
Dzięki w oczekiwaniu na pomoc.