2016-04-28 11 views
2

Ich erstelle eine interaktive HTML-Map in R unter Verwendung der Leaflet-Bibliothek.R Leaflet Legende: colorBin Entfernen von Dezimalstellen zwischen Pausen

Die Legende verwendet die Methode colorBin zum Erstellen der 6 Kategorien zum Aufteilen der Daten.

Unter Verwendung der min(values) und max(values) habe ich die Domäne der möglichen Werte definiert, in die ein bestimmter Teil der Einkommensdaten der Amercian Community Survey fallen könnte. Die Unterbrechungsstellen sind jedoch nicht erfreulich, wie Sie dem angehängten Bild entnehmen können.

Es sieht aus wie dieses

$8,8820.0- 17,708.5 
$17,708.5- 26,535.0 

statt einer gesunden Version wie folgt aus:

$8,8820 - 17,708 
$17,809 - 26,536 

oder

$8,8820.00 - 17,708.00 
$17,809.00 - 26,536.00 

Ich würde es akzeptieren, wenn es HAD .00 sein auf jeder, nur keine Dezimalstelle für einen Dollarbetrag!

ich keine Möglichkeit, um die einzelnen Schritte zu formatieren, finden mit einem dummen einzigen dezimal zu tun, weg ...

Hier ist der Code für die Palette:

pal3<-colorBin(palette="YlOrBr", domain=c(min(plotMerge$incomePerCapita), max(plotMerge$incomePerCapita)), bins = 6, na.color = NULL, pretty=FALSE, alpha = TRUE) 

Und hier ist die Funktion für die Legende:

addLegend(pal = pal3, 
     values = plotMerge$incomePerCapita, 
     position = "bottomright", 
     title = "Income per Capita<br> in 2014 US Dollars ", 
     labFormat = labelFormat(prefix="$")) 

Gerade falls dieser Teil des Problems ist, hier ist das Attribut auf die Polygone basierend auf Einkommen Zuordnung Farbe, die die Palette der Karte selbst gilt.

fillColor = ~pal3(plotMerge$incomePerCapita), 

soweit ich richtig sagen kann, sind die Flächen und die zugehörigen Daten, also bin ich nicht besonders besorgt über die Aufzeichnung der Karte selbst. Aber ich möchte, dass die Legende vernünftig aussieht und nicht eine Dezimalstelle hat, die sich überschneidet.

Ich habe die R-Bretter SCOURED gelesen alles über Prospekte hier und anderswo. Ich kann nicht sehen, was ich tun muss. Jede Hilfe würde sehr geschätzt werden.

Photograph of the legend and map created by the R copy above

+1

Sie können möglicherweise verwenden: labelFormat (prefix = "$", Ziffern = 0)). Hier ist der Link zum GitHub-Code für das Blatt: https://github.com/rstudio/leaflet/blob/master/R/legend.R. Von diesem sollten Sie in der Lage sein, das Format nach Ihren Wünschen zu optimieren. – Dave2e

+0

Dave2e du bist mein Held! DANKE ... Das hat perfekt funktioniert. Wenn Sie eine Genehmigung benötigen, machen Sie eine Antwort anstelle eines Kommentars und ich gebe Ihnen das grüne Häkchen der Bestätigung! – sconfluentus

Antwort

2

Sie können in der Lage sein Einsatz: labelformat (prefix = "$", Ziffern = 0)). Hier ist der Link zum GitHub-Code für das Blatt: github.com/rstudio/leaflet/blob/master/R/legend.R. Hier

ist die Funktion Prototyp mit allen möglichen Optionen:

labelFormat = function(
     prefix = '', suffix = '', between = ' &ndash; ', digits = 3, big.mark = ',', 
     transform = identity) 

Daraus sollten Sie in der Lage sein, das Format nach Ihren Wünschen zu optimieren.