【发布时间】:2020-07-23 02:12:09
【问题描述】:
我想在 R 中构建一个多面热图。为此,我附上了我的示例代码。一切正常,但我面临的唯一问题是我不希望这些位置按字母顺序排列。请看一下代码和图。我需要位置序列是 purulia,bankura,jhargram 而不是 bankura, jhargram,purulia
df <- data.frame(chr=c("SWAT","SWAT","VIC","VIC","MOD16A2","MOD16A2"),
year=c("2001_K","2002_K","2001_K","2002_K","2001_K","2002_K"),
purulia=c(-12,0.56,-0.35,0.49,0.11,0.23),
bankura=c(-43,-0.56,0.35,0.74,-0.11,0.89),
jhargram=c(0.13,-0.12,-0.41,0.16,-0.69,0.42))
df.l <- reshape(df, [enter image description here][1]
varying = c("purulia", "bankura", "jhargram"),
idvar="chr",
v.names = "NSE",
timevar = "Locations",
times=c("purulia", "bankura", "jhargram"),
new.row.names=c(1:(3*nrow(df))),
direction = "long")
library(ggplot2)
df.l$year <- factor(df.l$year)
ggplot(df.l, aes(Locations, year)) + geom_tile(aes(fill = NSE)) +
scale_fill_gradient(low = "white", high = "red") + facet_wrap(~chr)+
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())
【问题讨论】: