Reputation: 321
I am having trouble changing the number of columns in my line graph. I have tried the conventional method yet there is some problem...
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")
I have put the conventional command (end of script) for changing the number of columns in the legend but it is not working...
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))
Please ask for any more information if needed.
Upvotes: 1
Views: 66
Reputation: 16178
It's because you have several elements composing your legend: colour
, shape
and group
. You need to pass all of them in guide_legend
in order ggplot be able to separate all elements of the legend in two rows.
Try by adding the following at the end of your code:
... +
guides(colour = guide_legend(nrow= 2),
shape = guide_legend(nrow = 2),
group = guide_legend(nrow = 2))
Upvotes: 1