Используйте facet_wrap в R

В этом ответе я попытался использовать фасеты, чтобы включить белые линии между "зонами" моей тепловой карты. Вот та же проблема, что и у меня с использованием набора данных ChickWeight.

library(reshape)
library(ggplot2)
ChickWeight.long <- melt(ChickWeight, id = c("Chick", "Diet"))

#Non-split heatmap
ggplot(ChickWeight.long, aes(x = Chick, y = variable, fill=value)) +
  geom_tile(colour="white",size=0.1) + #add grid lines between the tiles
  xlab("Chick") + ylab("") + labs(fill = "weight") +  
  theme_minimal() 

Это мой оригинальный сюжет, я хотел бы, чтобы вертикальные линии лучше различали группы вещей (в данном случае цыплят) по оси X Тепловая карта без перерывов

#Attempt of split heatmap
ggplot(ChickWeight.long, aes(x = Chick, y = variable, fill=value)) +
  facet_wrap(~Diet) +
  geom_tile(colour="white",size=0.1) + #add grid lines between the tiles
  xlab("Chick") + ylab("") + labs(fill = "weight") +  
  theme_minimal() 

Это то, что я получаю. Я бы хотел, чтобы растянутые участки растягивались на всю длину. Что я делаю неправильно? введите описание изображения здесь

1 ответ

Я сделал Chick numeric переменная и позволяет шкале х быть свободным.

ChickWeight.long$Chick <- as.numeric(as.character(ChickWeight.long$Chick))

ggplot(ChickWeight.long, aes(x = Chick, y = variable, fill=value)) +
  facet_wrap(~Diet, scale = "free_x") +
  geom_tile(colour="white",size=0.1) + #add grid lines between the tiles
  xlab("Chick") + ylab("") + labs(fill = "weight") +  
  theme_minimal() 

Другие вопросы по тегам