Sto cercando di creare una tabella heatmap, che èabbastanza facile, ma sto volendo che il colore del gradiente sia confinato all'interno di una singola riga, non sull'intero data.frame. Il risultato dovrebbe essere che ogni riga dovrebbe avere la riga max e min entrambe presenti. Fondamentalmente, tutti gli esempi di mappe di calore che posso trovare online creano la scala del gradiente di colore da tutti i valori nella tabella.
Ecco un esempio di dataframe:
df <- data.frame("var" = paste0("var",1:3),
"group1" = c(1,500,3),
"group2" = c(2,300,1),
"group3" = c(3,100,2),
"group4" = c(4,50,4),
"group5" = c(5,10,5))
Ed ecco il risultato di ciò che sto cercando:
risposte:
2 per risposta № 1Che dire del ridimensionamento dei dati per riga (dividerlo per la media della riga). Esempio con ggplot2:
df <- melt(df)
df <- data.table(df)
df[,value_rescaled:=value/mean(value),by=.(var)]
ggplot(data = df, aes(x = variable, y = var)) +
geom_tile(aes(fill = value_rescaled))+
scale_fill_gradient2(low = "#4682B4", mid = "#FFFFFF", high = "#FF0000", midpoint = 1, space = "Lab",
na.value = "grey50", guide = "colourbar")+
geom_text(aes(label=value))+
theme(legend.position="none")