我有一个数据框,其中包含称为季节和位置的两列以及40列不同的数据。每列标准化为0-1。我现在想像这样绘制它:
其中S1-4代表不同季节,并根据其值进行颜色编码。此外,我想为NA或NaN设置不同的颜色。
很遗憾,我不知道该怎么做。我曾经有一个想法是使用plotly,但是以某种方式我无法将ggplot用于各个图(热图)。
我发现很难创建所需的输出,但是也许我可以向您展示一种替代方法。首先,我们将(虚构的)data.frame转换为“更长”的形状。恕我直言,使用这种格式的data.frames更容易。
df <- data.frame(season=rep(1:4, 4),
location=rep(1:4, each=4, 4),
par_1=runif(16, -1, 1),
par_2=runif(16, -1, 1),
par_3=runif(16, -1, 1),
par_4=runif(16, -1, 1))
df <- df %>%
pivot_longer(cols=starts_with("par"),
names_to="parameter",
names_prefix="par_",
values_to="value") %>%
mutate(parameter=str_c("Parameter ", parameter))
df[256,4] <- NA # create one NA for demonstration
ggplot(df, aes(location, season, fill=value, color="")) +
facet_wrap(~parameter, ncol=2) +
labs(x="Location", y="Season", title="Value per season and location by parameter") +
geom_tile() +
scale_fill_gradientn(colors = rev(heat.colors(120)), na.value="blue") +
guides(color=guide_legend("No data", override.aes=list(fill="blue")))