试图生成一个点图,该点图对我的值进行重新排序,并且在这些值上方也有一条平均线。
我可以使用均线或重新排序的值来生成图,但不能同时生成这两者,因为会出现错误
“ geom_path:每个组仅包含一个观察值。您是否需要调整组的美感?”。
我相信我得到了错误,因为我的一些数据只有一个观察结果,但是我不明白为什么这只会成为重新排序数据的问题。
最后,我想要的是能够显示每个x值两个不同值组的均值。
这是我的示例代码
library(ggplot2)
typ <- c("T", "N", "T", "T", "N")
samplenum <- c(7,7,6,8,8)
values <- c(1,2,1,3,2)
df = data.frame(typ, samplenum, values)
d <- ggplot(df, aes(x= reorder(samplenum, values), y= values))
d <- d + geom_point(position=position_jitter(width=0.15, height=0.05))
d <- d + aes(colour = factor(df$typ))
d <- d + stat_summary(fun.y = mean, geom="line")
d
谢谢您的帮助。
这就是我要去的
在完成从更大的数据集中获得的结果的示例图片之前,需要执行以下步骤。
有行但未重新排序
重新排序,但无中线
答案 0 :(得分:1)
如错误消息所示,您需要调整组的美观度。当您使用reorder
时,将得到一个离散的比例尺,但是您想绘制跨组连接的线,这就是错误的原因。
您可以尝试
ggplot(df, aes(x = reorder(samplenum, values), y = values, colour = factor(typ))) +
geom_jitter(width = 0.15, height = 0.05) +
stat_summary(fun.y = mean, geom = "line", aes(group = factor(typ)))
(我稍稍更改了您的数据,以便包含更多观察值。)
数据
df <- structure(list(typ = structure(c(2L, 1L, 2L, 2L, 1L, 2L, 1L,
2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L), .Label = c("N", "T"), class = "factor"),
samplenum = c(7, 7, 6, 8, 8, 7, 7, 6, 8, 8, 7, 7, 6, 8, 8
), values = c(1L, 3L, 2L, 1L, 3L, 3L, 1L, 3L, 2L, 2L, 2L,
1L, 3L, 1L, 2L)), .Names = c("typ", "samplenum", "values"
), row.names = c(NA, -15L), class = "data.frame")
包含您输入数据的结果图