0

我正在研究以下结构和以下绘图代码:

structure(c(NA, 11, 9, 9, 21, 7, 2, 5, 3, 0, 0, 1, 31, NA, 3, 
2, 1, 0, 0, 10, 3, 0, 0, 0, 31, 16, NA, 2, 2, 10, 0, 5, 0, 0, 
0, 0, 59, 65, 1, NA, 2, 4, 0, 4, 0, 0, 0, 0, 156, 23, 7, 17, 
NA, 3, 2, 4, 7, 0, 0, 0, 31, 84, 0, 10, 16, NA, 0, 6, 0, 0, 2, 
0, 129, 0, 2, 1, 0, 0, NA, 0, 0, 0, 0, 0, 41, 41, 0, 3, 4, 5, 
0, NA, 0, 0, 0, 1, 16, 4, 1, 2, 0, 0, 0, 3, NA, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, NA, 0, 0, 1, 12, 2, 0, 0, 6, 0, 0, 0, 0, 
NA, 0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), .Dim = c(12L, 
12L), .Dimnames = list(c("WILL_", "WOULD_", "MAY_", "MIGHT_", 
"CAN_", "COULD_", "SHALL_", "SHOULD_", "MUST_", "OUGHT TO_", 
"USED TO_", "HAVE TO_"), c("_WILL", "_WOULD", "_MAY", "_MIGHT", 
"_CAN", "_COULD", "_SHALL", "_SHOULD", "_MUST", "_OUGHT TO", 
"_USED TO", "_HAVE TO")))
breaks <- c(0,1,5,10,50,100,500,100000)

reshape2::melt(structure, value.name = "Freq") %>%
  mutate(label = ifelse(is.na(Freq) | Freq == 0, "", as.character(Freq))) %>%
  ggplot(aes(Var2, fct_rev(Var1))) +
  geom_tile(aes(fill = Freq), color = "black") +
  geom_text(aes(label = label), color = "black") +
  scale_fill_steps(low = "white", high = "purple", breaks = breaks, na.value = "grey",trans = "log")+ 
  scale_x_discrete(NULL, expand = c(0, 0), position="top") +
  scale_y_discrete(NULL, expand = c(0, 0)) +
  theme(axis.text.x = element_text(angle=60,vjust = 0.5, hjust = 0))

我正在尝试调整代码,以便将原始 NA 值(在绘图上视为从 WILL WILL to HAVE TO HAVE TO 和 X HAVE TO 列的共同出现形成对角线的瓷砖)表示为黑色瓷砖与我想保持原样的其他瓷砖分开。

寻找有关如何执行此操作的提示,因为我认为我在代码开头的值表示方面做错了。

一切顺利

卡梅伦

4

0 回答 0