R 绘图图例列的疑难解答

R 绘图图例列的疑难解答,r,ggplot2,R,Ggplot2,更改线条图中的列数时遇到问题。我已经尝试了传统的方法,但仍然有一些问题 structure(list(pot = c(1L, 2L, 4L, 21L, 22L, 23L, 24L, 6L, 7L, 8L, 25L, 26L, 27L, 28L, 9L, 10L, 11L, 12L, 29L, 30L, 31L, 32L, 13L, 14L, 15L, 16L, 33L, 34L, 35L, 36L, 17L, 18L, 20L, 37L, 38L, 39L, 40L, 42L, 43L,

更改线条图中的列数时遇到问题。我已经尝试了传统的方法,但仍然有一些问题

structure(list(pot = c(1L, 2L, 4L, 21L, 22L, 23L, 24L, 6L, 7L, 
8L, 25L, 26L, 27L, 28L, 9L, 10L, 11L, 12L, 29L, 30L, 31L, 32L, 
13L, 14L, 15L, 16L, 33L, 34L, 35L, 36L, 17L, 18L, 20L, 37L, 38L, 
39L, 40L, 42L, 43L, 44L, 61L, 62L, 63L, 64L, 45L, 46L, 47L, 48L, 
65L, 66L, 67L, 68L, 49L, 50L, 51L, 52L, 69L, 70L, 71L, 72L, 53L, 
54L, 55L, 56L, 73L, 74L, 75L, 76L, 57L, 58L, 59L, 60L, 77L, 78L, 
79L, 80L, 81L, 82L, 83L, 84L, 101L, 102L, 103L, 104L, 85L, 86L, 
87L, 88L, 105L, 106L, 107L, 89L, 90L, 91L, 92L, 109L, 110L, 111L, 
112L, 93L, 94L, 95L, 96L, 113L, 114L, 115L, 116L, 97L, 98L, 99L, 
100L, 117L, 118L, 119L, 120L, 121L, 122L, 123L, 124L, 141L, 142L, 
143L, 144L, 125L, 126L, 127L, 128L, 145L, 146L, 147L, 129L, 130L, 
131L, 132L, 149L, 150L, 151L, 152L, 133L, 134L, 135L, 136L, 153L, 
154L, 155L, 156L, 137L, 138L, 140L, 157L, 158L, 159L, 160L), 
rep = c(1L, 2L, 4L, 1L, 2L, 3L, 4L, 2L, 3L, 4L, 1L, 2L, 3L, 
4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 
3L, 4L, 1L, 2L, 4L, 1L, 2L, 3L, 4L, 2L, 3L, 4L, 1L, 2L, 3L, 
4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 
3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 
2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 
1L, 2L, 3L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 
1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 
4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 1L, 2L, 3L, 
4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 
4L, 1L, 2L, 3L, 4L), cultivar = 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, 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, 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), .Label = 
c("Dinninup", 
"Riverina", "Seaton Park", "Yarloop"), class = "factor"), 
Waterlogging = structure(c(2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 
2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 
2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 
2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 
2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 
2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 
1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 
1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 
1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 
1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 
1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L), .Label = c("Non-waterlogged", 
"Waterlogged"), class = "factor"), P = c(0L, 0L, 0L, 0L, 
0L, 0L, 0L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 6L, 6L, 6L, 6L, 6L, 
6L, 6L, 6L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 36L, 
36L, 36L, 36L, 36L, 36L, 36L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 
6L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 36L, 36L, 36L, 
36L, 36L, 36L, 36L, 36L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 
12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 36L, 36L, 36L, 36L, 
36L, 36L, 36L, 36L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 12L, 
12L, 12L, 12L, 12L, 12L, 12L, 12L, 36L, 36L, 36L, 36L, 36L, 
36L, 36L), P.1 = c(12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 
15.17, 15.17, 15.17, 15.17, 15.17, 15.17, 15.17, 18.24, 18.24, 
18.24, 18.24, 18.24, 18.24, 18.24, 18.24, 24.39, 24.39, 24.39, 
24.39, 24.39, 24.39, 24.39, 24.39, 48.35, 48.35, 48.35, 48.35, 
48.35, 48.35, 48.35, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 
12.1, 15.17, 15.17, 15.17, 15.17, 15.17, 15.17, 15.17, 15.17, 
18.24, 18.24, 18.24, 18.24, 18.24, 18.24, 18.24, 18.24, 24.39, 
24.39, 24.39, 24.39, 24.39, 24.39, 24.39, 24.39, 48.35, 48.35, 
48.35, 48.35, 48.35, 48.35, 48.35, 48.35, 12.1, 12.1, 12.1, 
12.1, 12.1, 12.1, 12.1, 12.1, 15.17, 15.17, 15.17, 15.17, 
15.17, 15.17, 15.17, 18.24, 18.24, 18.24, 18.24, 18.24, 18.24, 
18.24, 18.24, 24.39, 24.39, 24.39, 24.39, 24.39, 24.39, 24.39, 
24.39, 48.35, 48.35, 48.35, 48.35, 48.35, 48.35, 48.35, 48.35, 
12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 12.1, 15.17, 15.17, 
15.17, 15.17, 15.17, 15.17, 15.17, 18.24, 18.24, 18.24, 18.24, 
18.24, 18.24, 18.24, 18.24, 24.39, 24.39, 24.39, 24.39, 24.39, 
24.39, 24.39, 24.39, 48.35, 48.35, 48.35, 48.35, 48.35, 48.35, 
48.35), S.R = c(4.363636364, 4.583333333, 5.125, 4.542857143, 
8, 6.12, 6.333333333, 7.785714286, 10.64285714, 7.785714286, 
6.956521739, 6.6, 6.346153846, 7.090909091, 6.153846154, 
8.272727273, 12.3, 3.909090909, 6.826086957, 8.285714286, 
9.928571429, 5.827586207, 4.866666667, 7.125, 5.866666667, 
3.555555556, 6.142857143, 7.1, 6.689655172, 9.142857143, 
12.11111111, 5.178571429, 4.379310345, 6.428571429, 9.333333333, 
9.15, 7.8, 3.181818182, 5.789473684, 6.571428571, 6.347826087, 
7.421052632, 5.2, 5.944444444, 10.625, 8.769230769, 8.789473684, 
6.166666667, 5.8, 6.740740741, 6.185185185, 6.173913043, 
8.5, 10.21428571, 8.944444444, 8.277777778, 7.25, 6.189189189, 
7.037037037, 7.56, 7.238095238, 6.296296296, 7.807692308, 
7.736842105, 6.153846154, 6.133333333, 8.217391304, 8.52, 
10.21428571, 5.772727273, 8.761904762, 9, 6.757575758, 8.517241379, 
4.561403509, 5.540540541, 6.44, 5.833333333, 5.214285714, 
4.648648649, 3, 4.820512821, 5.862068966, 5.90625, 5.793103448, 
4.935483871, 5.793103448, 6.956521739, 3.473684211, 6.228571429, 
6.517241379, 5.885714286, 8.260869565, 7.857142857, 5.523809524, 
7.1875, 7, 9.2, 6.7, 9.307692308, 7.3, 8, 7.583333333, 6.184210526, 
7.15625, 6.5, 10.20833333, 5.941176471, 8.407407407, 11.29411765, 
4.444444444, 6.25, 8.258064516, 12.05263158, 9, 6.5, 8.2, 
5.285714286, 5.461538462, 5.730769231, 6.076923077, 5.2, 
5.8125, 4.076923077, 3.764705882, 5.823529412, 9, 6.75, 5.954545455, 
6.035714286, 4.153846154, 4.263157895, 4, 4.666666667, 3.636363636, 
5.454545455, 5.633333333, 2.141025641, 4.090909091, 5.111111111, 
7.642857143, 4.777777778, 2.957446809, 2.185185185, 2.307692308, 
7.8, 19.375, 10.375, 7.941176471, 5.956521739, 5.125, 4.657894737, 
8.5)), row.names = c(1L, 2L, 4L, 5L, 6L, 7L, 8L, 10L, 11L, 
12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 
25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L, 33L, 34L, 36L, 37L, 38L, 
39L, 40L, 42L, 43L, 44L, 45L, 46L, 47L, 48L, 49L, 50L, 51L, 52L, 
53L, 54L, 55L, 56L, 57L, 58L, 59L, 60L, 61L, 62L, 63L, 64L, 65L, 
66L, 67L, 68L, 69L, 70L, 71L, 72L, 73L, 74L, 75L, 76L, 77L, 78L, 
79L, 80L, 81L, 82L, 83L, 84L, 85L, 86L, 87L, 88L, 89L, 90L, 91L, 
92L, 93L, 94L, 95L, 97L, 98L, 99L, 100L, 101L, 102L, 103L, 104L, 
105L, 106L, 107L, 108L, 109L, 110L, 111L, 112L, 113L, 114L, 115L, 
116L, 117L, 118L, 119L, 120L, 121L, 122L, 123L, 124L, 125L, 126L, 
127L, 128L, 129L, 130L, 131L, 132L, 133L, 134L, 135L, 137L, 138L, 
139L, 140L, 141L, 142L, 143L, 144L, 145L, 146L, 147L, 148L, 149L, 
150L, 151L, 152L, 153L, 154L, 156L, 157L, 158L, 159L, 160L), class = 
"data.frame")
我已经使用了常规命令(脚本末尾)来更改图例中的列数,但它不起作用

library(Rmisc)
library(ggplot2)

tglf2 <- summarySE(z, measurevar="S.R", 
groupvars=c("P","cultivar","Waterlogging"),na.rm=TRUE)

pd <- position_dodge(0.5)

ggplot(tglf2, aes(x=as.factor(P), y=S.R,colour=cultivar,group=cultivar)) + 
geom_errorbar(aes(ymin=S.R-se, ymax=S.R+se),colour="black", 
width=.2,position=pd) +
geom_line(position=pd) +
geom_point(aes(shape=cultivar),size=3.5,position=pd)+
scale_shape_manual(values=c(0, 16, 17,1))+
scale_color_manual(values=c("#009E73", "#F0E442", "#0072B2", "#D55E00"))+
facet_grid(~Waterlogging)+
ylab(expression(Root~mass~fraction~(g~root~g^-1~plant)))+
xlab(expression(P~(mg~kg^-1~soil)))+
scale_y_continuous(expand = c(0, 0),limits=c(0, 18),breaks=0:100*3)+
theme_bw()+
theme(legend.key.size = unit(6, "mm"))+
cleanup+
theme(
 legend.position = c(.25, .88),
legend.title=element_blank(),
strip.background = element_blank(),
legend.text = element_text(size=14),# 
strip.text.x = element_text(size = 15),
axis.text.x = element_text(size = 15),
axis.title.y = element_text(size = 15,margin = margin(t = 0, r = 5, b = 0, l = 
0)),
axis.title.x = element_text(size = 15,margin = margin(t = 5, r = 0, b = 0, l = 
0)),
axis.text.y = element_text(margin = margin(r = 3),size = 15))+
geom_segment(aes(x = 1, y = 13, xend = 1, yend = 15.58216),
            size=1,colour="black",data = subset(z, Waterlogging == 
"Waterlogged"))+
guides(col = guide_legend(nrow = 2))
库(Rmisc)
图书馆(GG2)

tglf2这是因为您有几个元素组成了图例:
颜色
形状
。您需要在
guide\u legend
中传递所有元素,以便能够将图例的所有元素分为两行

尝试在代码末尾添加以下内容:

+
导轨(颜色=导轨和图例(nrow=2),
形状=导向装置和图例(nrow=2),
组=指南\图例(nrow=2))