[英]Changing the order of discrete variables on the X axis --R
I am using the following code to make my graph: 我使用以下代码来制作我的图表: . 。
#Labels
label1 <- data.frame( x = 2, y = 2, Type = "FYS", label = "N=15")
label2 <- data.frame( x = 2, y = 2, Type = "SNR", label = "N=24")
# make graph
ggplot(data = Q, mapping = aes(y = Rating, x = weeks, group= StudentFactor, colour=StudentFactor))+
geom_point()+
geom_line()+
facet_grid(Type ~.)+
geom_smooth(method = 'lm', formula = y ~ poly(x), colour= "black", aes(group=1), se= FALSE)+
theme(legend.position="none") +
labs (x= "Date", y="Students' Average Engagement over Time")+
geom_text(data = label1, aes(x = x, y = y, label = label), inherit.aes = FALSE)+
geom_text(data = label2, aes(x = x, y = y, label = label), inherit.aes = FALSE)
However, the dates at the bottom are out of order. 但是,底部的日期不正常。 Instead of using x= weeks
, I could use x=timePeriod
which would make the points be in order, but the labels to be wrong. 而不是使用x= weeks
,我可以使用x=timePeriod
,这将使得点有序,但标签是错误的。 I have tried adding the following code to order the levels of weeks, 我尝试添加以下代码来订购周级别,
df$weeks <- factor(df$weeks, order=TRUE, levels=weeks)
but I keep getting an error saying object of type 'closure' is not subsettable
. 但我一直收到一个错误,说object of type 'closure' is not subsettable
。
I have attached my data below: 我在下面附上了我的数据:
> dput (Q)
structure(list(StudentFactor = structure(c(1L, 3L, 4L, 8L, 11L,
13L, 14L, 15L, 18L, 19L, 21L, 22L, 24L, 30L, 31L, 32L, 36L, 38L,
27L, 34L, 35L, 1L, 3L, 4L, 8L, 11L, 13L, 14L, 18L, 19L, 21L,
22L, 24L, 2L, 5L, 6L, 7L, 9L, 10L, 12L, 16L, 17L, 20L, 23L, 25L,
26L, 28L, 29L, 30L, 31L, 32L, 33L, 36L, 37L, 38L, 40L, 41L, 34L,
39L, 1L, 3L, 4L, 8L, 11L, 13L, 14L, 15L, 18L, 19L, 21L, 24L,
2L, 5L, 6L, 7L, 9L, 10L, 12L, 16L, 17L, 20L, 23L, 25L, 28L, 30L,
31L, 33L, 36L, 37L, 38L, 40L, 41L, 34L, 35L, 39L, 1L, 3L, 4L,
8L, 11L, 14L, 15L, 18L, 21L, 22L, 24L, 2L, 6L, 7L, 9L, 10L, 12L,
16L, 17L, 20L, 23L, 31L, 33L, 36L, 37L, 40L, 27L, 34L, 1L, 3L,
4L, 8L, 11L, 13L, 14L, 15L, 18L, 19L, 21L, 22L, 2L, 5L, 6L, 7L,
9L, 10L, 12L, 16L, 17L, 20L, 23L, 28L, 30L, 31L, 32L, 33L, 36L,
38L, 41L, 27L, 34L, 35L, 1L, 3L, 4L, 11L, 14L, 15L, 18L, 19L,
21L, 22L, 24L, 2L, 5L, 6L, 9L, 10L, 12L, 16L, 20L, 23L, 29L,
30L, 31L, 32L, 33L, 36L, 38L, 41L, 27L, 34L, 35L, 1L, 3L, 11L,
13L, 14L, 15L, 18L, 19L, 21L, 22L, 24L, 2L, 6L, 7L, 9L, 10L,
12L, 16L, 17L, 20L, 23L, 28L, 29L, 30L, 31L, 36L, 37L, 38L, 40L,
41L, 27L, 34L, 35L, 39L, 1L, 3L, 4L, 11L, 13L, 14L, 15L, 18L,
19L, 21L, 22L, 24L, 2L, 7L, 10L, 12L, 16L, 17L, 20L, 28L, 29L,
30L, 31L, 32L, 33L, 36L, 37L, 38L, 40L, 41L, 27L, 34L, 35L, 1L,
11L, 13L, 14L, 18L, 19L, 21L, 22L, 24L, 2L, 6L, 7L, 10L, 12L,
16L, 28L, 30L, 31L, 33L, 36L, 34L, 1L, 4L, 14L, 15L, 18L, 19L,
21L, 22L, 24L, 2L, 7L, 9L, 10L, 12L, 16L, 17L, 20L, 23L, 29L,
30L, 31L, 32L, 33L, 36L, 37L, 40L, 41L, 27L, 34L, 39L, 1L, 3L,
4L, 11L, 13L, 14L, 15L, 18L, 22L, 24L, 2L, 6L, 7L, 9L, 10L, 12L,
16L, 17L, 20L, 23L, 30L, 31L, 36L, 37L, 38L, 41L, 27L), .Label = c("789331",
"796882", "805933", "826523", "827911", "830271", "831487", "832929",
"834598", "836364", "838607", "839802", "841903", "843618", "852125",
"855524", "873527", "876406", "879972", "885409", "885650", "888712",
"894218", "903303", "928026", "932196", "952797", "955389", "956952",
"957206", "957759", "959200", "962490", "965873", "967416", "968728",
"969005", "971179", "975424", "976863", "981621"), class = "factor"),
Type = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 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, 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, 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, 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, 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, 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, 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, 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, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 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, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("FYS", "SNR"), class = "factor"),
weeks = structure(c(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, 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, 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, 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, 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, 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, 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, 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, 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), .Label = c("Apr5",
"Feb1", "Feb15", "Feb8", "Jan11", "Jan25", "Mar1", "Mar15",
"Mar22", "Mar29", "Mar8"), class = "factor"), timePeriod = structure(c(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, 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, 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, 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, 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, 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), class = "factor", .Label = c("Rt1", "Rt2", "Rt3", "Rt4",
"Rt5", "Rt6", "Rt7", "Rt8", "Rt9", "Rt10", "Rt11")), Rating = c(3.6,
4.8, 4.4, 3.8, 5, 3.2, 4.4, 3.2, 3.6, 3.8, 4, 4.4, 3.6, 4,
3.8, 3, 3.6, 4.4, 3.6, 3.4, 4.2, 3.8, 4, 4.2, 3.8, 5, 4.2,
4.4, 4, 3.8, 4.4, 4, 3.8, 4.4, 4.2, 4.6, 4.4, 5, 4, 3.4,
5, 3.8, 4.8, 4.4, 4.6, 3.2, 5, 4.2, 4.4, 4.4, 3.4, 3.8, 3.8,
3.6, 4.8, 4.4, 4.8, 4.75, 4, 4, 4, 4.2, 3.8, 5, 4.2, 4.6,
3.8, 4.2, 3.8, 4, 4.6, 4, 3.6, 4.8, 4.2, 3.8, 4, 2, 4.6,
3.8, 4.6, 4.4, 4.8, 4.6, 4, 4.4, 4.2, 3.6, 4.6, 4.4, 5, 4.6,
5, 4.2, 3.4, 4.2, 3.6, 4.4, 4, 5, 4.4, 4, 4, 4, 4.2, 4, 4,
5, 4.6, 4, 4, 1.8, 4.6, 4.2, 4.8, 4.6, 4.4, 4.2, 3.4, 4.4,
3.8, 4, 5, 3.4, 3.2, 4.6, 3.6, 5, 3.6, 4.4, 3.8, 4, 4, 4.2,
4.4, 2.8, 3.4, 5, 4.4, 4.2, 3.6, 4.2, 4.2, 4, 4.4, 5, 4,
4, 3.8, 3.2, 4.2, 3.4, 4.4, 5, 4.4, 4, 4.2, 2.4, 3.2, 4.6,
4.4, 4.4, 3.6, 2.4, 4.2, 4, 4.4, 3.4, 3.6, 3.4, 4.4, 4, 3.2,
2.2, 4.4, 4.4, 5, 3.2, 4.4, 4, 3, 4.6, 3, 4.25, 4.2, 3.6,
3.8, 4.4, 3, 3.2, 4.2, 4, 4.4, 3.6, 2.8, 4, 4.4, 4.6, 3.8,
2.8, 4.8, 4.2, 4, 3.6, 3, 4.8, 4.2, 4.2, 5, 4.4, 4.4, 4,
3.2, 1, 4.4, 4.2, 3.6, 3.8, 4, 1.4, 4.6, 2.8, 3.2, 3.2, 4.6,
4.4, 3.4, 4.2, 4, 3.8, 4, 4.2, 3.8, 3.6, 1.4, 4.6, 3.6, 4.2,
4, 4.4, 4.4, 4.6, 4.2, 4.2, 3.2, 4, 3.6, 3, 4.6, 4.8, 3.6,
4.2, 4.2, 2.2, 5, 3.2, 3.8, 4.2, 3.6, 3, 4, 3.8, 4.2, 3.8,
2.2, 5, 4.8, 3.4, 2.8, 5, 4.4, 4, 3, 1, 3, 1.6, 3.6, 4.2,
4, 3.4, 3.2, 4, 4, 4, 3.6, 2, 4.4, 4, 3.4, 1.8, 4.2, 3.8,
3.8, 4, 4.2, 3.8, 4.2, 4.2, 3.2, 1.6, 4.6, 4, 5, 4, 3.4,
3.6, 4, 3.2, 4.2, 3.6, 4.6, 4.4, 4.6, 4.2, 4.6, 4.6, 4.2,
5, 4.6, 4.2, 4, 4, 4.6, 4.4, 3.6, 5, 4.4, 4.6, 1.6, 4.6,
5, 5, 4)), class = "data.frame", row.names = c(NA, -333L), .Names = c("StudentFactor",
"Type", "weeks", "timePeriod", "Rating"))
I just changed the format of the week column. 我刚刚更改了周列的格式。 Does it work for you? 对你起作用吗?
newdate <- as.Date(Q[, 3], "%b%d")
newdate <- strftime(newdate,"%m %d")
QQ <- cbind(Q, newdate)
ggplot(data = QQ, mapping = aes(y = Rating, x = factor(newdate), group= StudentFactor, colour=StudentFactor))+
geom_point()+
geom_line()+
facet_grid(Type ~.)+
geom_smooth(method = 'lm', formula = y ~ poly(x), colour= "black", aes(group=1), se= FALSE)+
theme(legend.position="none") +
labs (x= "Date", y="Students' Average Engagement over Time")+
geom_text(data = label1, aes(x = x, y = y, label = label), inherit.aes = FALSE)+
geom_text(data = label2, aes(x = x, y = y, label = label), inherit.aes = FALSE)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.