Nella trama generata dal codice seguente vorrei modificare i colori in modo che tutti i valori < 0.6 siano gli stessi del colore "basso" e tutti i valori maggiori di 1 sono il colore "alto".R ggplot2 - Come specificare i valori dei limiti di fuori colore
Così com'è, il gradiente di colore si estende sull'intero intervallo numerico dei dati. Ho provato ad aggiungere limiti ma questo fa sì che tutti i valori fuori limite abbiano lo stesso colore dei valori NA, che non è quello che voglio perché ho bisogno di perdere i valori di NA per sporgere chiaramente e non apparire dello stesso colore dei valori fuori limite < 0.6.
Sono convinto che la risposta sia con la oob, rompe gli argomenti ma non ha avuto successo nel farlo funzionare.
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 = " "))
Si scrive 'tutti i valori superiori a 1 sono il colore 'alta'' e ' qcMat contiene valori tra 0 e 1 e alcuni NA '. Perché usare 1 come limite quando non hai 1 nei tuoi dati? – Henrik
@Henrik i dati generati per lo scopo di questo frammento di codice non riflettono fedelmente i dati reali su cui sto lavorando, ma sono piuttosto vicini. Inoltre ha riparato la rimozione di dishMat. – HoaxKey