R ggplot2 - Wie kann ich angeben, out-of-bounds-Werte' Farbe

In der Handlung erzeugt, indem Sie den folgenden code möchte ich ändern, um die Farben so, dass alle Werte < 0.6 sind die gleichen wie die "low" - Farbe und alle Werte, die größer als 1 sind die "hohen" Farbe.

Wie steht der Farbverlauf erstreckt sich über den gesamten numerischen Bereich der Daten. Ich habe versucht, hinzufügen von Grenzen, aber das macht alle out-of-bounds-Wert die gleiche Farbe wie die NA-Werte, das ist nicht das, was ich will, weil ich brauche, fehlt NA-Werte deutlich-stick aus und sehen nicht die gleiche Farbe wie die out-of-bounds-Werte <0.6.

Ich bin davon überzeugt, dass die Antwort mit der oob -, Pausen-Argumente haben aber keinen Erfolg hatten, bekommen es zu arbeiten.

library(ggplot2)
a = rnorm(17*17, 0.733,0.21)
qcMat = matrix(a, ncol = 17)
qcMat[qcMat> 1] = 1
#qcMat contains values between 0 and 1 and some NAs

m = melt(t(qcMat))
m$Var2 <- with(m,factor(Var2, levels = rev(sort(unique(Var2)))))
ggplot(m, aes(as.factor(Var1), Var2, group=Var2)) +
  geom_tile(aes(fill = value)) +
  geom_text(aes(fill = m$value, label = round(m$value, 2))) +
  scale_fill_gradient(low = "red", high = "green") +
  xlab("") + ylab("") + ggtitle(paste("biscuit:", biscuit_id, "- QC", sep = " "))
  • Sie schreiben, " alle Werte, die größer als 1 sind die "hohen" Farbe " und "qcMat enthält Werte zwischen 0 und 1 und einige NAs'. Warum verwenden Sie 1 als Grenze, wenn man keine 1 in Ihren Daten?
  • die generierten Daten für den Zweck dieses snippet ist nicht ein getreues Spiegelbild der realen Daten auf, mit denen ich arbeite, aber es ist ziemlich nahe. Außerdem wurde die Entfernung der dishMat.
  • Sie könnten auch legen Sie die na.value wie diese: scale_fill_gradient(low = "red", high = "green", na.value = "hotpink")
InformationsquelleAutor HoaxKey | 2014-05-14
Schreibe einen Kommentar