2014-06-17 13 views
14

Ich habe ein Grundstück in ggplot2 erstellt, die scale_fill_gradientn verwendet. Ich möchte Text am Minimum und am Maximum der Skalenlegende hinzufügen. Zum Beispiel, bei der Legende Minimum Anzeige "Minimum" und bei der Legende maximale Anzeige "Maximum". Es gibt Posts, die diskrete Füllungen verwenden und Beschriftungen mit Nummern anstelle von Text hinzufügen (z. B. here), aber ich bin unsicher, wie die labels-Funktion mit scale_fill_gradientn verwendet werden kann, um Text nur bei Min und Max einzufügen. In der Gegenwart Ich bin geneigt zu bekommen Fehler:Label Minimum und Maximum der Skala Füllgradient Legende mit Text: ggplot2

Error in scale_labels.continuous(scale, breaks) : Breaks and labels are different lengths

Ist das Text-Label möglich innerhalb ggplot2 für diese Art der Skala/füllen?

# The example code here produces an plot for illustrative purposes only. 
# create data frame, from ggplot2 documentation 
df <- expand.grid(x = 0:5, y = 0:5) 
df$z <- runif(nrow(df)) 

#plot 
ggplot(df, aes(x, y, fill = z)) + geom_raster() + 
scale_fill_gradientn(colours=topo.colors(7),na.value = "transparent") 

Antwort

24

Für scale_fill_gradientn() sollten Sie beiden Argumente liefern: breaks= und labels= mit gleicher Länge. Mit dem Argument limits= erweitern Sie den Farbbalken auf den von Ihnen benötigten minimalen und maximalen Wert.

ggplot(df, aes(x, y, fill = z)) + geom_raster() + 
     scale_fill_gradientn(colours=topo.colors(7),na.value = "transparent", 
          breaks=c(0,0.5,1),labels=c("Minimum",0.5,"Maximum"), 
          limits=c(0,1)) 

enter image description here

+0

Ist diese Antwort noch gültig? Ich verwende den folgenden Befehl ohne Erfolg. Die Min- und Max-Werte werden nicht auf dem Farbbalken angezeigt. Hier ist mein Code 'scale_fill_gradientn (Farben = pal (100), Brüche = Brüche, Grenzen = lim, Etiketten = Brüche, guide = guide_colorbar (title = Ausdruck (einfügen ('hr', sep =" ")) , title.position = "right", title.vjust = 0.8, width = 75)) ' – Gandalf

+1

Der Code ist noch gültig. Ihr Code kann nicht überprüft werden, da er nicht reproduzierbar ist. –