Sto provando a creare una scala di colori con una transizione di colore nitida in un punto. Quello che sto facendo attualmente è:Come creare una scala di colori con transizione nitida in ggplot2
test <- data.frame(x = c(1:20), y = seq(0.01, 0.2, by = 0.01))
cutoff <- 0.10
ggplot(data = test,
aes(x = as.factor(x), y = y, fill = log(y), width = 1, binwidth = 0)) +
geom_bar(stat = "identity") +
scale_fill_gradientn(colours = c("red", "red", "yellow", "green"),
values = rescale(log(c(0.01, cutoff - 0.0000000000000001, cutoff, 0.2))),
breaks = c(log(cutoff)), label = c(cutoff))
Sta producendo le trame che voglio. Ma la posizione della pausa in colorbar varia in qualche modo a seconda del limite. A volte sotto il valore, a volte sopra, a volte sulla linea. Qui ci sono alcuni appezzamenti con differenti tagli (0,05, 0,06, 0,1):
Che cosa sto facendo di sbagliato? O in alternativa, c'è un modo migliore per creare una tale scala di colori?
@Hengrui Jiang ha fatto la mia risposta risolto il problema? – Henrik
Grazie per i suggerimenti! Questa è davvero una buona alternativa per l'esempio nella domanda. Ma vedo due problemi qui: 1. i valori al di sotto del cutoff non possono essere "ponderati", ad es. 'colors = c (" red4 "," red "," yellow "," green ")' nel mio mini esempio 2. Penso che il fatto che il taglio non sia illustrato nella legenda rende molto più difficile la comprensione –