我创建了一个分面绘图(使用ggplot2 :: facet_grid),其中我交换了y轴,使y条带文本绘制在图的左侧,并已经使用theme(strip.placement = "outside")将条带文本放置在y轴值之外。然而,条纹标题被绘制在y轴名称和y轴值之间。我想将条带文本绘制在y轴名称之外,以便y轴名称就直接绘制在y轴值旁边。是否可能实现?
这是我的一部分数据:
这是我用来构建图表的代码。
这是我的一部分数据:
df<-structure(list(place = c("Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site1", "Site1", "Site1", "Site1", "Site1",
"Site1", "Site1", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2", "Site2", "Site2", "Site2",
"Site2", "Site2", "Site2", "Site2"), year = c(2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L), month = c(1L,
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L,
6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 8L,
8L, 8L, 8L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 10L, 10L, 10L, 10L, 10L,
10L, 10L, 10L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 12L, 12L, 12L,
12L, 12L, 12L, 12L, 12L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L,
6L, 6L, 6L, 6L, 6L, 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,
9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 10L, 10L, 10L, 10L,
10L, 10L, 10L, 10L, 10L, 10L, 11L, 11L, 11L, 11L, 11L, 11L, 11L,
11L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 1L,
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L,
4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 7L,
7L, 7L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 9L, 9L, 9L, 9L,
9L, 9L, 9L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 11L, 11L, 11L,
11L, 11L, 11L, 11L, 11L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L,
7L, 7L, 7L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L,
9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 10L, 10L, 10L, 10L, 10L,
10L, 10L, 10L, 10L, 10L, 10L, 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), perc = c(0.01, 0.16, 0.06, 0.02, 0,
0, 0.01, 0.05, 0.17, 0.01, 0, 0.02, 0.17, 0.05, 0.02, 0, 0, 0.07,
0.15, 0.01, 0, 0, 0, 0.04, 0.03, 0.14, 0.02, 0.01, 0, 0, 0.01,
0.03, 0.14, 0.06, 0, 0, 0, 0, 0.02, 0.12, 0.03, 0.03, 0, 0, 0,
0, 0.02, 0.11, 0.05, 0.01, 0, 0, 0.02, 0.03, 0.13, 0.01, 0.01,
0, 0, 0, 0, 0.05, 0.08, 0.05, 0.01, 0, 0, 0, 0.04, 0.08, 0.05,
0.02, 0, 0, 0, 0.08, 0.09, 0.01, 0.01, 0, 0, 0, 0, 0.03, 0.14,
0.04, 0.03, 0.01, 0.01, 0, 0, 0.1, 0.1, 0.05, 0, 0, 0, 0, 0.11,
0.11, 0.02, 0.01, 0, 0, 0, 0, 0.03, 0.14, 0.07, 0.02, 0, 0, 0,
0.05, 0.02, 0.16, 0, 0.01, 0, 0, 0, 0, 0.08, 0.1, 0.06, 0.01,
0, 0, 0, 0.01, 0.04, 0.02, 0.03, 0.08, 0.02, 0.01, 0, 0, 0, 0,
0, 0, 0, 0, 0.02, 0.01, 0.05, 0.06, 0.04, 0, 0, 0, 0, 0, 0, 0,
0, 0.02, 0.06, 0.09, 0.02, 0, 0, 0, 0, 0, 0, 0.01, 0.02, 0.05,
0.06, 0.04, 0, 0, 0, 0.01, 0.01, 0.07, 0.07, 0.04, 0.01, 0, 0,
0, 0, 0.01, 0.04, 0.07, 0.04, 0.03, 0, 0, 0, 0, 0, 0.16, 0.03,
0.06, 0, 0, 0.15, 0.01, 0.08, 0.01, 0.11, 0.07, 0.07, 0, 0.09,
0.11, 0.04, 0, 0, 0.04, 0.11, 0.08, 0.02, 0, 0, 0, 0.06, 0.12,
0.05, 0.02, 0.01, 0, 0, 0.05, 0.08, 0.05, 0.02, 0.01, 0, 0.08,
0.07, 0.04, 0.01, 0, 0, 0, 0.04, 0.09, 0.05, 0.02, 0, 0, 0, 0.02,
0.06, 0.07, 0.03, 0.01, 0, 0, 0.01, 0.05, 0.07, 0.05, 0.02, 0,
0, 0, 0.01, 0.07, 0.05, 0.05, 0.01, 0, 0, 0, 0.01, 0.07, 0.08,
0.06, 0.03, 0, 0, 0, 0.04, 0.07, 0.06, 0.06, 0.02, 0, 0, 0.03,
0.09, 0.08, 0.03, 0.01, 0, 0, 0.04, 0.09, 0.08, 0.03, 0, 0, 0,
0.06, 0.08, 0.07, 0.03, 0.01, 0, 0, 0.03, 0.08, 0.07, 0.05, 0.01,
0, 0, 0, 0.03, 0.06, 0.05, 0.03, 0.02, 0.01, 0, 0, 0, 0, 0.02,
0.06, 0.05, 0.04, 0.02, 0.01, 0, 0, 0, 0, 0.03, 0.08, 0.05, 0.02,
0.01, 0, 0, 0, 0, 0.02, 0.05, 0.05, 0.03, 0.03, 0.02, 0.01, 0,
0, 0, 0, 0, 0, 0.02, 0.04, 0.05, 0.04, 0.02, 0.01, 0.01, 0, 0,
0, 0, 0.01, 0.03, 0.05, 0.05, 0.03, 0.02, 0, 0, 0, 0, 0, 0),
category = c("0", "1", "2", "3", "4", "0", "1", "2", "3",
"4", "5", "0", "1", "2", "3", "4", "0", "1", "2", "3", "4",
"5", "6", "0", "1", "2", "3", "4", "5", "0", "1", "2", "3",
"4", "5", "6", "7 - 14", "0", "1", "2", "3", "4", "5", "6",
"0", "1", "2", "3", "4", "5", "6", "7 - 14", "0", "1", "2",
"3", "4", "5", "6", "0", "1", "2", "3", "4", "5", "6", "7 - 14",
"0", "1", "2", "3", "4", "5", "6", "0", "1", "2", "3", "4",
"5", "6", "7 - 14", "0", "1", "2", "3", "4", "5", "6", "7 - 14",
"0", "1", "2", "3", "4", "5", "6", "0", "1", "2", "3", "4",
"5", "6", "0", "1", "2", "3", "4", "5", "6", "7 - 14", "0",
"1", "2", "3", "4", "5", "6", "7 - 14", "7 - 14", "0", "1",
"2", "3", "4", "5", "6", "0", "1", "2", "3", "4", "5", "6",
"7 - 14", "7 - 14", "7 - 14", "7 - 14", "7 - 14", "7 - 14",
"7 - 14", "0", "1", "2", "3", "4", "5", "6", "7 - 14", "7 - 14",
"7 - 14", "7 - 14", "7 - 14", "7 - 14", "0", "1", "2", "3",
"4", "5", "6", "7 - 14", "7 - 14", "7 - 14", "7 - 14", "1",
"2", "3", "4", "5", "6", "7 - 14", "7 - 14", "7 - 14", "7 - 14",
"1", "2", "3", "4", "5", "6", "7 - 14", "7 - 14", "1", "2",
"3", "4", "5", "6", "7 - 14", "7 - 14", "7 - 14", "7 - 14",
"7 - 14", "0", "1", "2", "3", "4", "0", "1", "2", "3", "0",
"1", "2", "3", "0", "1", "2", "3", "4", "0", "1", "2", "3",
"4", "5", "6", "0", "1", "2", "3", "4", "5", "6", "0", "1",
"2", "3", "4", "5", "0", "1", "2", "3", "4", "5", "6", "0",
"1", "2", "3", "4", "5", "6", "0", "1", "2", "3", "4", "5",
"6", "0", "1", "2", "3", "4", "5", "6", "7 - 14", "0", "1",
"2", "3", "4", "5", "6", "7 - 14", "0", "1", "2", "3", "4",
"5", "6", "7 - 14", "0", "1", "2", "3", "4", "5", "6", "0",
"1", "2", "3", "4", "5", "6", "0", "1", "2", "3", "4", "5",
"6", "0", "1", "2", "3", "4", "5", "6", "0", "1", "2", "3",
"4", "5", "6", "7 - 14", "0", "1", "2", "3", "4", "5", "6",
"7 - 14", "7 - 14", "7 - 14", "0", "1", "2", "3", "4", "5",
"6", "7 - 14", "7 - 14", "7 - 14", "0", "1", "2", "3", "4",
"5", "6", "7 - 14", "7 - 14", "0", "1", "2", "3", "4", "5",
"6", "7 - 14", "7 - 14", "7 - 14", "7 - 14", "0", "1", "2",
"3", "4", "5", "6", "7 - 14", "7 - 14", "7 - 14", "7 - 14",
"7 - 14", "7 - 14", "0", "1", "2", "3", "4", "5", "6", "7 - 14",
"7 - 14", "7 - 14", "7 - 14", "7 - 14")), row.names = c(NA,
-379L), class = c("tbl_df", "tbl", "data.frame"))
这是我用来构建图表的代码。
library(ggplot2)
library(lemon)
ggplot(df,aes(x = month,
y = perc,
fill = category)) +
geom_col(position = "fill") +
facet_rep_grid(place ~ year ,
repeat.tick.labels = T,
switch = "y") +
theme_minimal() +
theme(strip.text.y = element_text(angle = 180),
strip.placement = "outside")
下面是生成的图形:
最终,这是期望的图形: