ggplot2 中两个不同组的不同调色板

2023-11-24

我正在尝试创建一个图,显示多个地点的观测数据和建模数据的每月土壤湿度垂直剖面。

到目前为止,我只能绘制一组值,无论是观察值还是建模值,如下例所示:

library(ggplot2)
library(RColorBrewer)

# Create customized color palette
mypal <- colorRampPalette(brewer.pal(6,"PuBu"))

ggplot(df1, aes(x=value, y=depth, colour=as.factor(month))) +
  geom_path() +
  facet_wrap(~ site) +
  scale_y_reverse() +
  scale_colour_manual(values=mypal(12)) +
  theme_bw(base_size=18) +
  ylab("Depth") + xlab(bquote('Soil moisture (' ~m^3~m^-3*')')) +
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank()) 

这是重现它的数据:

df1 <- structure(list(site = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 
6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 
6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 
6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 
6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 8L, 8L, 8L, 
8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 
8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 
8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 
8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 
9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 
9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 
9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 
9L, 9L, 9L, 9L, 9L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 
10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 
10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 
10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 
10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 11L, 
11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 
11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 
11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 
11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 
11L, 11L, 11L, 11L, 11L, 11L, 11L, 12L, 12L, 12L, 12L, 12L, 12L, 
12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 
12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 
12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 
12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 
12L, 12L), .Label = c("IL_Shabbona_5_NNE", "ME_Limestone_4_NNW", 
"ME_Old_Town_2_W", "MI_Chatham_1_SE", "MI_Gaylord_9_SSW", "MN_Goodridge_12_NNW", 
"MN_Sandstone_6_W", "NH_Durham_2_N", "NH_Durham_2_SSW", "NY_Ithaca_13_E", 
"NY_Millbrook_3_W", "WI_Necedah_5_WNW"), class = "factor"), month = c(1L, 
2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 
5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 
8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 
11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 
1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 
4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 
7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 
10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 
12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 
3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 
6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 
9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 
12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 
3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 
6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 
9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 
12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 
3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 
6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 
9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 
12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 
3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 
6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 
9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 
12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 
3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 
6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 
9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 
12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 
3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 
6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 
9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 
12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 
3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 
6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 
9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 
12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 
3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 
6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 
9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 
12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 
3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 
6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 
9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 
12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 
3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 
6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 
9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 
12L), depth = c(5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 
10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 
20, 20, 20, 20, 20, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 
50, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 
10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 
20, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 100, 100, 
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 5, 5, 5, 5, 
5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 
10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 50, 50, 
50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 100, 100, 100, 100, 100, 
100, 100, 100, 100, 100, 100, 100, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 50, 50, 50, 50, 50, 
50, 50, 50, 50, 50, 50, 50, 100, 100, 100, 100, 100, 100, 100, 
100, 100, 100, 100, 100, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 
20, 20, 20, 20, 20, 20, 20, 20, 50, 50, 50, 50, 50, 50, 50, 50, 
50, 50, 50, 50, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
100, 100, 100, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 
10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 
20, 20, 20, 20, 20, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 
50, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 
10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 
20, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 100, 100, 
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 5, 5, 5, 5, 
5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 
10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 50, 50, 
50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 100, 100, 100, 100, 100, 
100, 100, 100, 100, 100, 100, 100, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 50, 50, 50, 50, 50, 
50, 50, 50, 50, 50, 50, 50, 100, 100, 100, 100, 100, 100, 100, 
100, 100, 100, 100, 100, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 
20, 20, 20, 20, 20, 20, 20, 20, 50, 50, 50, 50, 50, 50, 50, 50, 
50, 50, 50, 50, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
100, 100, 100, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 
10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 
20, 20, 20, 20, 20, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 
50, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 
10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 
20, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 100, 100, 
100, 100, 100, 100, 100, 100, 100, 100, 100, 100), clm = c(0.324, 
0.321, 0.334, 0.33, 0.285, 0.277, 0.264, 0.261, 0.261, 0.273, 
0.303, 0.339, 0.348, 0.349, 0.356, 0.333, 0.289, 0.281, 0.269, 
0.267, 0.266, 0.277, 0.303, 0.352, 0.345, 0.349, 0.355, 0.337, 
0.295, 0.288, 0.277, 0.275, 0.274, 0.284, 0.299, 0.344, 0.299, 
0.306, 0.314, 0.331, 0.312, 0.305, 0.295, 0.293, 0.292, 0.3, 
0.299, 0.295, 0.274, 0.278, 0.284, 0.308, 0.302, 0.298, 0.289, 
0.287, 0.286, 0.292, 0.291, 0.281, 0.477, 0.475, 0.475, 0.518, 
0.379, 0.353, 0.352, 0.341, 0.347, 0.373, 0.46, 0.499, 0.399, 
0.401, 0.399, 0.435, 0.346, 0.326, 0.325, 0.316, 0.32, 0.339, 
0.37, 0.409, 0.339, 0.34, 0.337, 0.362, 0.313, 0.294, 0.293, 
0.286, 0.289, 0.306, 0.317, 0.345, 0.256, 0.259, 0.26, 0.274, 
0.281, 0.262, 0.26, 0.254, 0.255, 0.271, 0.263, 0.256, 0.243, 
0.242, 0.242, 0.252, 0.281, 0.267, 0.266, 0.261, 0.26, 0.274, 
0.27, 0.25, 0.497, 0.467, 0.461, 0.434, 0.377, 0.361, 0.341, 
0.314, 0.334, 0.372, 0.394, 0.514, 0.363, 0.35, 0.344, 0.366, 
0.34, 0.327, 0.311, 0.289, 0.304, 0.336, 0.344, 0.367, 0.308, 
0.294, 0.286, 0.318, 0.304, 0.293, 0.279, 0.26, 0.272, 0.3, 0.309, 
0.308, 0.232, 0.228, 0.237, 0.281, 0.271, 0.263, 0.25, 0.235, 
0.239, 0.265, 0.277, 0.25, 0.235, 0.233, 0.24, 0.28, 0.273, 0.265, 
0.254, 0.242, 0.241, 0.264, 0.277, 0.258, 0.448, 0.446, 0.454, 
0.49, 0.341, 0.31, 0.297, 0.298, 0.325, 0.359, 0.427, 0.478, 
0.351, 0.352, 0.359, 0.403, 0.312, 0.287, 0.276, 0.276, 0.298, 
0.325, 0.333, 0.355, 0.305, 0.309, 0.312, 0.338, 0.281, 0.26, 
0.25, 0.249, 0.266, 0.29, 0.288, 0.3, 0.233, 0.233, 0.237, 0.265, 
0.256, 0.238, 0.229, 0.227, 0.236, 0.256, 0.252, 0.239, 0.231, 
0.229, 0.228, 0.253, 0.262, 0.247, 0.237, 0.235, 0.24, 0.255, 
0.257, 0.24, 0.326, 0.323, 0.341, 0.343, 0.268, 0.236, 0.209, 
0.213, 0.228, 0.27, 0.301, 0.34, 0.311, 0.31, 0.321, 0.322, 0.254, 
0.228, 0.206, 0.208, 0.22, 0.254, 0.278, 0.317, 0.285, 0.285, 
0.295, 0.302, 0.243, 0.22, 0.2, 0.2, 0.211, 0.241, 0.253, 0.283, 
0.218, 0.22, 0.222, 0.259, 0.236, 0.215, 0.197, 0.193, 0.198, 
0.225, 0.232, 0.22, 0.19, 0.188, 0.187, 0.214, 0.225, 0.205, 
0.189, 0.182, 0.183, 0.201, 0.213, 0.2, 0.437, 0.435, 0.437, 
0.456, 0.391, 0.367, 0.358, 0.339, 0.347, 0.374, 0.468, 0.468, 
0.402, 0.401, 0.406, 0.442, 0.39, 0.369, 0.362, 0.345, 0.351, 
0.364, 0.41, 0.425, 0.386, 0.386, 0.389, 0.415, 0.375, 0.355, 
0.349, 0.336, 0.34, 0.349, 0.377, 0.401, 0.318, 0.319, 0.32, 
0.343, 0.341, 0.32, 0.316, 0.307, 0.307, 0.313, 0.31, 0.321, 
0.302, 0.308, 0.312, 0.323, 0.335, 0.313, 0.309, 0.304, 0.303, 
0.307, 0.303, 0.299, 0.39, 0.387, 0.391, 0.405, 0.347, 0.335, 
0.328, 0.317, 0.327, 0.339, 0.387, 0.411, 0.387, 0.386, 0.39, 
0.392, 0.336, 0.325, 0.319, 0.31, 0.318, 0.326, 0.367, 0.399, 
0.367, 0.368, 0.373, 0.38, 0.332, 0.322, 0.317, 0.308, 0.315, 
0.321, 0.342, 0.374, 0.299, 0.302, 0.305, 0.337, 0.318, 0.307, 
0.304, 0.297, 0.3, 0.306, 0.298, 0.3, 0.265, 0.27, 0.274, 0.293, 
0.293, 0.281, 0.28, 0.275, 0.276, 0.281, 0.275, 0.265, 0.588, 
0.591, 0.555, 0.362, 0.367, 0.355, 0.317, 0.228, 0.161, 0.28, 
0.381, 0.412, 0.38, 0.389, 0.399, 0.301, 0.304, 0.294, 0.265, 
0.199, 0.149, 0.234, 0.315, 0.303, 0.302, 0.296, 0.323, 0.277, 
0.279, 0.27, 0.245, 0.19, 0.148, 0.211, 0.288, 0.262, 0.173, 
0.168, 0.188, 0.202, 0.196, 0.184, 0.171, 0.134, 0.113, 0.116, 
0.192, 0.184, 0.151, 0.136, 0.142, 0.18, 0.176, 0.164, 0.155, 
0.131, 0.119, 0.115, 0.165, 0.166, 0.588, 0.591, 0.555, 0.362, 
0.367, 0.355, 0.317, 0.228, 0.161, 0.28, 0.381, 0.412, 0.38, 
0.389, 0.399, 0.301, 0.304, 0.294, 0.265, 0.199, 0.149, 0.234, 
0.315, 0.303, 0.302, 0.296, 0.323, 0.277, 0.279, 0.27, 0.245, 
0.19, 0.148, 0.211, 0.288, 0.262, 0.173, 0.168, 0.188, 0.202, 
0.196, 0.184, 0.171, 0.134, 0.113, 0.116, 0.192, 0.184, 0.151, 
0.136, 0.142, 0.18, 0.176, 0.164, 0.155, 0.131, 0.119, 0.115, 
0.165, 0.166, 0.472, 0.46, 0.457, 0.442, 0.387, 0.382, 0.371, 
0.37, 0.377, 0.394, 0.432, 0.497, 0.452, 0.45, 0.45, 0.416, 0.367, 
0.362, 0.353, 0.352, 0.358, 0.372, 0.39, 0.453, 0.414, 0.418, 
0.42, 0.4, 0.354, 0.35, 0.342, 0.34, 0.346, 0.359, 0.363, 0.408, 
0.331, 0.341, 0.345, 0.362, 0.336, 0.332, 0.325, 0.322, 0.327, 
0.341, 0.337, 0.327, 0.296, 0.301, 0.306, 0.329, 0.326, 0.321, 
0.314, 0.311, 0.314, 0.328, 0.327, 0.309, 0.451, 0.44, 0.458, 
0.441, 0.344, 0.315, 0.303, 0.314, 0.324, 0.349, 0.396, 0.47, 
0.334, 0.327, 0.349, 0.372, 0.302, 0.279, 0.269, 0.278, 0.285, 
0.305, 0.31, 0.34, 0.287, 0.284, 0.293, 0.33, 0.279, 0.259, 0.248, 
0.256, 0.263, 0.281, 0.281, 0.288, 0.181, 0.182, 0.181, 0.226, 
0.212, 0.194, 0.184, 0.185, 0.192, 0.208, 0.209, 0.188, 0.174, 
0.175, 0.177, 0.208, 0.209, 0.193, 0.185, 0.184, 0.189, 0.201, 
0.203, 0.186, 0.365, 0.364, 0.367, 0.372, 0.309, 0.303, 0.288, 
0.292, 0.299, 0.308, 0.351, 0.382, 0.371, 0.372, 0.379, 0.376, 
0.311, 0.305, 0.291, 0.295, 0.301, 0.309, 0.343, 0.383, 0.365, 
0.366, 0.372, 0.376, 0.318, 0.313, 0.3, 0.303, 0.309, 0.316, 
0.33, 0.371, 0.33, 0.338, 0.342, 0.359, 0.33, 0.325, 0.313, 0.315, 
0.32, 0.327, 0.317, 0.324, 0.291, 0.296, 0.3, 0.319, 0.317, 0.312, 
0.303, 0.304, 0.307, 0.314, 0.304, 0.293)), row.names = c(NA, 
-720L), class = "data.frame", .Names = c("site", "month", "depth", 
"value"))

然而,我想在同一个图中再添加一个“组”。最终的绘图将具有额外的垂直线“集”,但使用不同的调色板(例如使用红色而不是蓝色)。

我尝试创建此图的失败尝试使用以下代码:

# Create some random data based on the first dataset
df1 <- cbind(df1, type='observed')
df2 <- df1[1:4]
df2$value <- df2$value * 1.5
df2 <- cbind(df2, type='modeled')
df3 <- rbind(df1,df2)

# Try to plot it
ggplot(df3, aes(x=value, y=depth, group=type, colour=as.factor(month))) +
  geom_path() +
  facet_wrap(~ site) +
  scale_y_reverse() +
  theme_bw(base_size=18) +
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())

这显然没有显示出我想要的。为什么每个面只显示两条线?其他垂直线在哪里?如何为这两个组配置不同的调色板?

在 ggplot2 中如何做到这一点?


您可以使用interaction结合type and month: color = interaction(as.factor(month), type))。 代替:group=type, colour=as.factor(month).

要创建红色和蓝色托盘,请使用两个mypal功能:

mypal <- colorRampPalette(brewer.pal(6, "PuBu"))
mypal2 <- colorRampPalette(brewer.pal(6, "YlOrRd"))

Code:

library(ggplot2)
library(RColorBrewer)

mypal <- colorRampPalette(brewer.pal(6, "PuBu"))
mypal2 <- colorRampPalette(brewer.pal(6, "YlOrRd"))

ggplot(df3, 
       aes(value, depth, color = interaction(as.factor(month), type))) +
    geom_path() +
    facet_wrap(~ site) +
    labs(title = "Soil moisture by depth and site",
         subtitle = "Observed and expected data",
         x = bquote('Soil moisture (' ~m^3~m^-3*')'),
         y = "Depth") +
    scale_y_reverse() +
    scale_colour_manual(values = c(mypal(12), mypal2(12))) +
    theme_classic() + 
    theme(legend.position = "none")

Plot:

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ggplot2 中两个不同组的不同调色板 的相关文章

随机推荐

  • 重置用户密码

    我正在尝试找到一种通过非交互式登录在 Azure Active Directory 中重置用户密码 所有用户 而不仅仅是经过身份验证的用户 的解决方案 目前看来这只能通过 powershell 的 MSOnline 获得Set AzureA
  • Android 模拟器替代品

    我对 Android 开发完全陌生 但我刚刚拥有一台 HTC Hero 想为其开发一些应用程序 然而 我使用笔记本电脑作为我的开发机器 并且模拟器非常慢 启动大约需要 10 15 分钟 虽然我可以让它保持打开状态 但在使用其他应用程序 如
  • LINQ 按空列排序,其中顺序为升序,空值应该在最后

    我正在尝试按价格对产品列表进行排序 结果集需要按列按价格从低到高列出产品LowestPrice 但是 该列可以为空 我可以按降序对列表进行排序 如下所示 var products from p in context Products whe
  • 如何从Application.Path获取UNC路径?

    我想获取 vba 代码中活动工作簿的路径 ActiveWorkbook Path做这个 BUT 我需要它来检索这样的东西 MachineName ShareFolder ETC ETC2 NOT S ETC ETC2 Where S 映射到
  • 为什么在访问模型时,backbone.js 返回一个空数组?

    我有一个路由器访问其集合 我的 for 循环没有迭代模型 因此我尝试记录集合以查看它返回的内容 事实证明 当我直接记录集合时 我会按预期看到所有模型 但是 如果我尝试记录集合的 models 属性 我会得到一个空数组 这没有道理 这些线直接
  • C# 中 async/await 的这种用法以前被发现过吗? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 在我之前在 stackoverflow 上提出了关于 async await 的问题之后
  • 以编程方式查明进程是否需要用户输入

    我如何以编程方式 在 C 中 确定另一个外部应用程序 本机 java NET 或其他 当前是否需要用户输入 这可以在托管代码中完全完成吗 我正在寻找的是实施 static Boolean IsWaitingForUserInput Stri
  • Google Maps API 自动完成同一页面上的第二个地址字段

    我在我的页面上使用 Google Maps API 该页面要求用户填写您的 当前地址 和 新地址 我可以让自动完成功能在第一个地址上工作 但它不适用于第二个地址 我做了很多研究并查看了 stackoverflow 上的类似帖子 但我找不到任
  • 在 try/catch 块中等待两个承诺会导致“未处理的承诺拒绝”[重复]

    这个问题在这里已经有答案了 我想等待两个并行运行的承诺 我不想连续等待每个承诺 这有效但速度较慢 出于这个原因 我认为我可以首先创建两个承诺来让它们滚动 比如说两个网络请求 然后等待它们并能够在 catch 块中捕获错误 这个假设似乎是不正
  • Django - 按模板中的某个字段对查询集进行分组

    我有一张桌子Events 按字段排序date 我想打印模板中的事件 但为每个日期使用单独的 div 例如 div class content h1 December 30th h1 div div class content h1 Dece
  • #1025 - mysql 中重命名错误(errno:150)

    我试图在一个表 misc 中删除一个外键 id 它是表 main 中的主键 id 数据库名称 xxx alter table misc drop FOREIGN KEY id 我收到这个错误 1025 将 interview sql edc
  • 如何使用 dotnet CLI 构建 .NET Framework 4.8 应用程序?

    我继承了一个 NET Framework 4 8 应用程序 我可以使用 Visual Studio 对其进行编译 但是当尝试使用dotnetCLI 应用程序 对于我从外部依赖项使用的所有类型 我都会收到 CS0246 错误 原来的错误消息
  • Spring授权服务器:如何使用托管在单独应用程序上的登录表单?

    我正在使用 Spring Security 和 Spring Authorization Server 并尝试创建身份验证服务器 我有一个基本流程 允许我使用预先构建的登录页面 从拜尔东指南 这是我正在处理的代码 我假设这个登录页面表单来自
  • 学习 LINQ [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 Overview 我在这个网站上问过很多次的事情之一是LINQ 我提出的问题广泛而多样 而且往往没有太多背景 因此 为了巩固我在 Linq 上获得的
  • ASP.NET 传递 Windows 身份验证凭据

    我有一个使用 Windows 身份验证的 ASP NET Web 应用程序 此应用程序需要连接到另一个 ASP NET Web 服务 也使用 Windows 身份验证 并使用从用户浏览器收到的相同凭据 这可以做到吗 如何做到 我不相信没有
  • C++ 错误:转换为执行字符集

    问题是我试图打印 ASCII 之外的一些字符 例如德语元音变音字符 等 这些字符不适合普通的 char 变量 因此显然我尝试将它们放入 wchar t 中并使用 L 初始化字符串 但是每次这个字符串包含上面的一个字符时 我都会收到上述错误
  • 从 CakePHP 2.1.2 控制台 Shell 创建完整 url

    我正在尝试通过控制台 shell 从 CakePHP 2 1 2 发送电子邮件 最终通过 cron 作业 我发送的视图是一个日历 其中包含返回应用程序网页的链接 我发现的问题是网址不包含正确的路径 从我读到的内容来看 这是因为我使用控制台后
  • GIF/JPEG 文件可以包含可运行的 PHP 代码吗?

    测试 Web 应用程序 我可以上传 GIF JPEG 文件 并且我知道在该 GIF Jpeg 中正确包含 PHP 代码时可能存在威胁 因为它是使用图像创建真彩色 and 图像jpeg 我正在寻找包含简单 PHP 代码 如 phpinfo 或
  • GroovyWS 和复杂请求

    我遇到了使用 GroovyWS 发送复杂请求的问题 这是由soapUI生成的示例请求
  • ggplot2 中两个不同组的不同调色板

    我正在尝试创建一个图 显示多个地点的观测数据和建模数据的每月土壤湿度垂直剖面 到目前为止 我只能绘制一组值 无论是观察值还是建模值 如下例所示 library ggplot2 library RColorBrewer Create cust