Въпросът ми е, че искам различен цвят за моята топлинна карта, използвайки geom_tile
и цветът на градиента варира в двата края на скалата. Например, цялата скала е (-1,1), искам само стойностите от -1 до -0,5 и стойностите от 0,5 до 1,0 имат градиентна цветова вариация, а стойностите между -0,5 и 0,5 остават бели. Въпреки това не мога да намеря опция в scale_fill_gradient
за постигане на целта. Възпроизводим пример е както по-долу и данните са от ggplot2 heatmaps: използване на различни градиенти за категории
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")