Как создать тепловую карту с помощью ggplot2?

Я пытаюсь создать тепловую карту с помощью ggplot2. Я нашел этот пример , который я, по сути, пытаюсь воспроизвести с моими данными, но у меня возникают трудности. Мои данные представляют собой простой файл .csv, который выглядит следующим образом:

people,apple,orange,peach
mike,1,0,6
sue,0,0,1
bill,3,3,1
ted,1,1,0

Я хотел бы создать простую тепловую карту, на которой имя фрукта находится на оси x, а человек - на оси y. На графике должны быть изображены квадраты, где цвет каждого квадрата представляет количество съеденных фруктов. Квадрат, соответствующий mike: peach , должен быть самым темным.

Вот код, который я использую, чтобы попытаться создать тепловую карту:

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"))

Когда я рисую эти данные, я получаю количество фруктов по оси x и людей по оси y. Я также не получаю цветовых градиентов, отображающих количество фруктов. Как я могу получить названия фруктов по оси абсцисс с отображением количества фруктов, съеденных человеком, в виде тепловой карты? Текущий вывод, который я получаю в R, выглядит следующим образом:

enter image description here

14
задан drbunsen 6 December 2011 в 20:29
поделиться