R中的复杂图

问题描述 投票:0回答:1

我有一个数据框,其中包含称为季节和位置的两列以及40列不同的数据。每列标准化为0-1。我现在想像这样绘制它:

enter image description here

其中S1-4代表不同季节,并根据其值进行颜色编码。此外,我想为NA或NaN设置不同的颜色。

很遗憾,我不知道该怎么做。我曾经有一个想法是使用plotly,但是以某种方式我无法将ggplot用于各个图(热图)。

r ggplot2 plotly multiple
1个回答
0
投票

我发现很难创建所需的输出,但是也许我可以向您展示一种替代方法。首先,我们将(虚构的)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")))

这给你enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.