Estoy tratando de producir un mapa de calor usando ggplot2. Encontré this example, que estoy tratando de replicar con mis datos, pero estoy teniendo dificultades. Mis datos es un simple archivo .csv que tiene este aspecto:¿Cómo se produce un mapa de calor con ggplot2?
people,apple,orange,peach
mike,1,0,6
sue,0,0,1
bill,3,3,1
ted,1,1,0
me gustaría producir un simple mapa de calor en el que el nombre de la fruta está en el eje X y la persona está en el eje y . El gráfico debe representar cuadrados donde el color de cada cuadrado es una representación de la cantidad de fruta consumida. El cuadrado correspondiente a mike:peach
debe ser el más oscuro.
Aquí está el código que estoy utilizando para tratar de producir el mapa de calor:
data <- read.csv("/Users/bunsen/Desktop/fruit.txt", head=TRUE, sep=",")
fruit <- c(apple,orange,peach)
people <- data[,1]
(p <- ggplot(data, aes(fruit, people)) + geom_tile(aes(fill = rescale), colour = "white") + scale_fill_gradient(low = "white", high = "steelblue"))
Cuando una de sus parcelas de datos consigo el número de frutos en el eje X y la gente en el eje y. Tampoco obtengo gradientes de color que representen la cantidad de fruta. ¿Cómo puedo obtener los nombres de las frutas en el eje x con la cantidad de fruta que come una persona que se muestra como un mapa de calor? La salida de corriente que estoy recibiendo en I es el siguiente:
@GeekOnAcid Traté de ejecutar el código anterior con los datos de la pregunta original, pero falló con: Error en reescalar (valor): Uso : reescalar (x, newrange) donde x es un objeto numérico y newrange es el nuevo min y max. ¿Cuál es el problema? – Ali
@AliSharifi Sí, tienes razón; debe haber habido algunos cambios en 'ggplot2' y otros paquetes que eliminaron la función' recale' o la cambiaron a la otra función. Lo que necesita es usar 'reescalar' del paquete' escalas' que redimensionan el vector numérico para tener el mínimo y el máximo especificados. Actualicé el código para que sea totalmente reproducible. –
@GeekOnAcid perfecto! – Ali