Meine Frage ist, dass ich eine abweichende Farbe für meine Heatmap mit geom_tile
möchte und die Farbverläufe an beiden Enden der Skala variieren. Zum Beispiel ist die gesamte Skala (-1,1), ich möchte nur die Werte von -1 bis -0,5 und die Werte von 0,5 bis 1,0 haben Gradienten Farbvariation und die Werte zwischen -0,5 und 0,5 bleiben so weiß. Ich kann jedoch keine Option in scale_fill_gradient
finden, um das Ziel zu erreichen. Ein reproduzierbares Beispiel ist als unten und die Daten von ggplot2 heatmaps: using different gradients for categoriesWie man "niedrig" und "hoch" festlegt und zwei Skalen an zwei Enden erhält mit scale_fill_gradient
nba <- read.csv("http://datasets.flowingdata.com/ppg2008.csv")
nba$Name <- with(nba, reorder(Name, PTS))
library("ggplot2")
library("plyr")
library("reshape2")
library("scales")
nba.m <- melt(nba)
nba.s <- ddply(nba.m, .(variable), transform,
rescale = scale(value))
ggplot(nba.s, aes(variable, Name))+geom_tile(aes(fill = rescale), colour = "white") +
scale_fill_gradient(low = "darkgreen", high = "darkred")
Danke für die Antwort! Ich möchte jedoch alle Werte, in diesem Fall von -2 bis 2, werden alle weiß ohne Farbverlauf-Effekt ... – MYjx
Wenn dies und die 'Gradienten'-Lösung nicht funktionieren, dann müssen Sie Ihre tun eigene 'cuts' der Werte und manuell die Farbverläufe mit' scale_fill_manual' angeben. – hrbrmstr
yep Ich habe 'scale_fill_manual' versucht, es hat funktioniert, aber ich möchte nicht die Farbe jedes Mal angeben, da ich viele Daten jeden Tag habe. Deshalb möchte ich "Gradienten" verwenden. Ich habe versucht, 'Breaks' zu verwenden, aber es scheint nur für die Legende zu funktionieren, nicht für die Farbe selbst. – MYjx