Mam zestaw współrzędnych początku i docelowego, a ja rysuję między nimi segmenty linii. Chodzi o to, chciałbym wskazać kierunek linii używając koloru zamiast strzałek, które są dostarczane z geom_segment(). Coś w rodzaju niebieskiego przechodzącego na czerwony, aby wskazać kierunek.Kolor gradientu ggplot2 wzdłuż geom_segment()
Czy istnieje prosty sposób, aby to zrobić za pomocą ggplot2?
Przykładowe dane:
points <- data.frame(long=runif(100,-122.4154,-122.3491))
points$lat <- runif(100,37.5976,37.6425)
points$long2 <- runif(100,-122.4154,-122.3491)
points$lat2 <- runif(100,37.5976,37.6425)
# add distance
library(geosphere)
points$miles <- apply(points, 1,
function(x) distHaversine(p1=c(x["long"],x["lat"]),p2=c(x["long2"],x["lat2"]),r=3959))
Do tej pory nie udało się kolor linii w różny sposób, ale nie znaleziono sposób, aby mieć dwa kolory, w tym samym segmencie linii i przejściowym pomiędzy nimi, przy mam tylko punkt początkowy i końcowy, bez punktów w pomiędzy:
ggplot(points,aes(x=long,xend=long2,y=lat,yend=lat2,color=miles)) +
geom_segment() +
scale_color_gradient2(low="red",high="blue",midpoint=median(points$miles))
Nie sądzę, że będzie to bardzo łatwe; prawdopodobnie będziesz musiał zhakować sposób na wprowadzenie punktów pośrednich do swoich segmentów. http://stackoverflow.com/questions/15924159/smooth-colors-in-geom-line zadaje podobne pytanie ... –
Zostało to zaimplementowane w podstawowej grafice w pakiecie "plotrix". Możesz spróbować przeszukać, czy ktoś opublikował siatkę-hack w Rhelp. Myślałem, że widziałem takie zwierzę na wolności, ale nie jestem szczególnie utalentowanym gpplot-hackerem, więc nie szukam tego. –
Jednym z hackerów może być rysowanie blisko siebie punktów za pomocą gradientu kolorów. –