R: дискретная тепловая карта с ggplot2

#r #ggplot2 #plotly #heatmap #data-manipulation

#r #ggplot2 #графически #тепловая карта #манипулирование данными

Вопрос:

Мне нужна тепловая карта с:

  • «Нет» красным цветом
  • «Да» выделено зеленым цветом.
  • Город по оси x
  • Спорт по оси y
 library(ggplot2)
df = data.frame(City= c(Boston, Caracas, Madrid, Tokio),
                Val = c(Yes, No, No, Yes),
                Sport = c("Soccer","Soccer","Soccer","Soccer"))
  

Комментарии:

1. Попробуйте ggplot(df, aes(x = City, y = Sport, fill = Val)) geom_tile()

Ответ №1:

В вашем примере есть только один вид спорта, поэтому он не создает отличную тепловую карту. Вот расширенный пример, чтобы дать лучшее представление об эстетике:

 library(ggplot2)

set.seed(69)

df <- data.frame(City= rep(c("Boston", "Caracas", "Madrid", "Tokio"), 4),
                 Val = sample(c("Yes", "No"), 16, TRUE),
                 Sport = rep(c("Soccer","Hockey", "Tennis", "Darts"), each = 4))

ggplot(df, aes(City, Sport, fill = Val))   
  geom_tile(color = "#00000022")  
  scale_fill_manual(values = c("red", "forestgreen"))  
  coord_equal()  
  theme_bw()  
  labs(fill = "Sport popular?")
  

Создано 2020-10-23 пакетом reprex (версия 0.3.0)