我创建了以下数据框架:
n <- 100
df <- data.frame(
Q1 = sample(c(0,1), n, rep = TRUE),
Q2 = sample(c(0,1), n, rep = TRUE),
Q3 = sample(c(0,1), n, rep = TRUE),
Q4 = sample(c(0,1), n, rep = TRUE),
Q5 = sample(c(0,1), n, rep = TRUE),
Q6 = sample(c(0,1), n, rep = TRUE),
Q7 = sample(c(0,1), n, rep = TRUE),
Q8 = sample(c(0,1), n, rep = TRUE),
Q9 = sample(c(0,1), n, rep = TRUE),
Q10 = sample(c(0,1), n, rep = TRUE))
结果是:
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10
[1,] 0 0 1 0 0 0 0 0 0 0
[2,] 1 0 0 0 0 0 0 0 0 0
[3,] 0 0 1 0 0 0 0 0 0 0
[4,] 0 0 0 1 0 0 0 0 0 0
[5,] 0 0 0 0 0 0 0 0 0 0
[6,] 0 1 0 0 0 0 0 0 0 0
[7,] 0 0 0 1 0 0 0 0 0 0
[8,] 1 0 0 0 0 0 0 0 0 0
[9,] 0 0 0 0 0 0 0 0 0 0
[10,] 1 0 0 0 0 0 0 0 0 0
[11,] 0 0 0 0 0 0 0 0 0 0
[12,] 0 0 0 0 0 0 0 0 0 0
[13,] 0 0 1 0 0 0 0 0 0 0
[14,] 0 0 0 0 0 0 0 0 0 0
[15,] 0 0 0 0 0 0 0 0 0 0
[16,] 0 0 1 0 0 0 0 0 0 0
[17,] 0 0 0 0 0 0 0 0 0 0
[18,] 0 0 1 0 0 0 0 0 0 0
[19,] 0 0 1 0 0 0 0 0 0 0
[20,] 0 1 0 0 0 0 0 0 0 0
[21,] 0 0 0 1 0 0 0 0 0 0
[22,] 0 0 0 1 0 0 0 0 0 0
[23,] 0 0 0 0 0 0 0 0 0 0
[24,] 1 0 0 0 0 0 0 0 0 0
[25,] 0 1 0 0 0 0 0 0 0 0
[26,] 1 0 0 0 0 0 0 0 0 0
[27,] 0 0 0 0 0 0 0 0 0 0
[28,] 0 0 1 0 0 0 0 0 0 0
[29,] 0 1 0 0 0 0 0 0 0 0
[30,] 1 0 0 0 0 0 0 0 0 0
[31,] 1 0 0 0 0 0 0 0 0 0
[32,] 0 1 0 0 0 0 0 0 0 0
[33,] 0 0 0 1 0 0 0 0 0 0
[34,] 0 0 0 0 0 0 0 0 0 0
[35,] 0 0 1 0 0 0 0 0 0 0
[36,] 0 0 1 0 0 0 0 0 0 0
[37,] 0 0 0 0 0 0 0 0 0 0
[38,] 0 1 0 0 0 0 0 0 0 0
[39,] 0 0 0 1 0 0 0 0 0 0
[40,] 0 1 0 0 0 0 0 0 0 0
[41,] 0 1 0 0 0 0 0 0 0 0
[42,] 0 0 0 0 0 0 0 0 0 0
[43,] 1 0 0 0 0 0 0 0 0 0
[44,] 0 0 0 1 0 0 0 0 0 0
[45,] 0 0 0 0 0 0 0 0 0 0
[46,] 0 0 1 0 0 0 0 0 0 0
[47,] 1 0 0 0 0 0 0 0 0 0
[48,] 0 0 0 1 0 0 0 0 0 0
[49,] 1 0 0 0 0 0 0 0 0 0
[50,] 0 0 1 0 0 0 0 0 0 0
[51,] 0 1 0 0 0 0 0 0 0 0
[52,] 0 1 0 0 0 0 0 0 0 0
[53,] 0 0 0 0 0 0 0 0 0 0
[54,] 0 0 1 0 0 0 0 0 0 0
[55,] 0 0 1 0 0 0 0 0 0 0
[56,] 0 0 1 0 0 0 0 0 0 0
[57,] 0 0 0 1 0 0 0 0 0 0
[58,] 0 0 0 0 0 0 0 0 0 0
[59,] 0 0 0 0 0 0 0 0 0 0
[60,] 0 0 0 1 0 0 0 0 0 0
[61,] 0 0 0 0 0 0 0 0 0 0
[62,] 0 1 0 0 0 0 0 0 0 0
[63,] 0 0 0 0 0 0 0 0 0 0
[64,] 1 0 0 0 0 0 0 0 0 0
[65,] 0 0 0 0 0 0 0 0 0 0
[66,] 0 1 0 0 0 0 0 0 0 0
[67,] 0 1 0 0 0 0 0 0 0 0
[68,] 1 0 0 0 0 0 0 0 0 0
[69,] 0 1 0 0 0 0 0 0 0 0
[70,] 0 0 0 0 0 0 0 0 0 0
[71,] 0 1 0 0 0 0 0 0 0 0
[72,] 1 0 0 0 0 0 0 0 0 0
[73,] 0 1 0 0 0 0 0 0 0 0
[74,] 0 0 0 0 0 0 0 0 0 0
[75,] 0 1 0 0 0 0 0 0 0 0
[76,] 0 0 0 0 0 0 0 0 0 0
[77,] 0 0 0 0 0 0 0 0 0 0
[78,] 0 0 0 0 0 0 0 0 0 0
[79,] 0 0 0 0 0 0 0 0 0 0
[80,] 0 0 0 0 0 0 0 0 0 0
[81,] 0 0 0 1 0 0 0 0 0 0
[82,] 1 0 0 0 0 0 0 0 0 0
[83,] 0 0 0 0 0 0 0 0 0 0
[84,] 0 0 0 1 0 0 0 0 0 0
[85,] 0 0 1 0 0 0 0 0 0 0
[86,] 0 0 1 0 0 0 0 0 0 0
[87,] 0 0 0 1 0 0 0 0 0 0
[88,] 0 0 0 0 0 0 0 0 0 0
[89,] 0 1 0 0 0 0 0 0 0 0
[90,] 0 0 1 0 0 0 0 0 0 0
[91,] 0 0 0 0 0 0 0 0 0 0
[92,] 0 1 0 0 0 0 0 0 0 0
[93,] 0 0 0 0 0 0 0 0 0 0
[94,] 0 1 0 0 0 0 0 0 0 0
[95,] 0 1 0 0 0 0 0 0 0 0
[96,] 0 0 0 0 0 0 0 0 0 0
[97,] 1 0 0 0 0 0 0 0 0 0
[98,] 0 0 0 0 0 0 0 0 0 0
[99,] 0 0 1 0 0 0 0 0 0 0
[100,] 0 1 0 0 0 0 0 0 0 0
我想创建一个热图,其中15是阴影(下面的代码)。我想添加一个功能,允许我在地图上为整行上色。例如,我希望第1-50行为蓝色,第50-100行为红色。是否有办法将其合并到代码中?
heatmap(df, Colv = NA, Rowv = NA, scale="column")
提前感谢!!
您可以使用ggplot
吗?
library(tidyverse)
library(reshape)
rows_1 <- 1:50
rows_2 <- 51:100
dat1 <- reshape::melt(df) %>%
mutate(y = rep(1:100, 10)) %>%
`colnames<-`(c("x", "value", "y")) %>%
mutate(value = as.factor(value),
fill2 = ifelse(y %in% rows_1, "red",
ifelse(y %in% rows_2, "blue", NA)))
cols <- c("1" = "black", "0" = "white", "red" = "red", "blue" = "blue")
ggplot(dat1, aes(x, y)) +
geom_tile(aes(fill = value)) +
geom_tile(aes(fill = fill2), alpha = 0.3) +
scale_fill_manual(values = cols)