2015-03-23 15 views
5

Nachdem ich die Intro to Leaflet durchgelesen habe, habe ich versucht, mit einem Dataset zu arbeiten, aber Seetang bekam keine Farbe für Kreise oder Markierungen, wenn ich versuchte, die Formelschnittstelle zu verwenden. Ich habe ein Spielzeugbeispiel erstellt und, wie Sie sehen können, ist etwas aus. Obwohl ich es sein könnte! Also:Leaflet in R zeigt keine variablen Kreisfarben

library("leaflet") 
set.seed(100) 
pdf <- data.frame(Latitude = runif(100, -90,90), Longitude = runif(100, -180,180)) 

#just red 
leaflet(pdf) %>% addTiles() %>% 
    addCircleMarkers(lat = ~ Latitude, lng = ~ Longitude, color= "red") 

Funktioniert ganz gut mit einer netten Karte, die rote Kreismarkierungen zeigt.

Red map

Aber. Das Hinzufügen von Farbe scheint die Markierungen vollständig zu borken.

#let's add some color! 
pdf$Study <- factor(rep(1:10,10)) 
cols <- rainbow(length(levels(pdf$Study))) 
pdf$colors <- cols[unclass(pdf$Study)] 

leaflet(pdf) %>% addTiles() %>% 
    addCircleMarkers(lat = ~ Latitude, lng = ~ Longitude, color= ~ colors) 

This should be colorful

Eine Inspektion der Spalte von pdf Farben zeigt, dass alle hell und schön sein sollte, und doch, leider. Was ist denn hier los?

Antwort

4

Standardmäßig gibt rainbow Farben im Format #RRGGBBAA zurück, die Leaflet nicht verwenden kann. Wenn Sie das Argument alpha=NULL hinzufügen, sollte es gut funktionieren.

+0

Gilt das nur für die R-Standardfarbfunktionen, oder gibt es eine Korrektur für andere Farbpaletten. Angenommen, ich verwende RColorBrewer oder die Bibliothek von wesanderson - müsste ich auch diese Farben korrigieren, und gibt es einen Standard-Fix? – jebyrnes

+1

Für RColorBrewer empfehle ich Ihnen, die verschiedenen 'colorXXX'-Argumente zu verwenden, die im Paket enthalten sind, und einfach den Namen der colorbrewer-Palette als 'palette'-Argument übergeben. Sehen Sie die Beispiele hier: http://rstudio.github.io/leaflet/colors.html Aber als Antwort auf Ihre Frage, RColorBrewer gibt '# RRGGBB' Farben zurück, so sollte es gut funktionieren ... Ich bin nicht sicher über wesanderson aber Ich könnte mir vorstellen, dass es dasselbe tut. –

Verwandte Themen