2017-05-03 4 views
1

Ich habe einen Datenrahmen df und möchte ein Punktdiagramm machen. Ich konnte nicht alle Werte als Punkt darstellen (oder zeigen); nur 8 Punkte werden von 20 gezeigt. Ich denke, es ist wegen der überlappenden Lat und Lon? Gibt es einen Weg, dass ich alle geplotteten Werte zeigen kann, dh 20 Punkte und nicht nur 8?. Danke. enter image description hereWie alle Punkte in ggplot2 plotten?

dput(df) 
structure(list(Lat = c(55.5, 49.5, 49.5, 60, 58.5, 55.5, 54, 
49.5, 55.5, 52.5, 58.5, 55.5, 55.5, 55.5, 55.5, 52.5, 55.5, 49.5, 
49.5, 48, 58.5), Lon = c(-132, -126, -124.5, -139.5, -136.5, 
-132, -129, -126, -132, -127.5, -136.5, -132, -132, -132, -132, 
-127.5, -132, -126, -126, -123, -136.5), Value = c(169, 308, 
178, 110, 224, 280, 212, 365, 224, 276, 121, 159, 166, 342, 96, 
283, 51, 375, 198, 284, 201)), .Names = c("Lat", "Lon", "Value" 
), row.names = c(168969L, 169011L, 169123L, 169285L, 169570L, 
169611L, 169858L, 169905L, 170237L, 170263L, 170483L, 170496L, 
170666L, 170684L, 170815L, 170834L, 170893L, 170916L, 171073L, 
171093L, 171201L), class = "data.frame") 

p <- ggplot() + 
    geom_point(data = df,aes(x = Lon, y = Lat, colour = Value)) 
p 
+0

Normalerweise 'geom_count' wäre eine gute Option sein, aber Sie werden die Farbzuordnung verlieren. – Axeman

Antwort

5

Sie sind in der Tat überlappen. Versuchen Sie es mit position_jitter. Fiedeln Sie mit width und height für feinere Kontrolle herum.

library(ggplot2) 

ggplot() + geom_point(data = df,aes(x = Lon, y = Lat, colour = Value), 
position=position_jitter(width=1,height=.1)) 

enter image description here

2


library(ggplot2) 

ggplot(data = df,aes(x = Lon, y = Lat, colour = Value)) + 
    geom_jitter()