gpt4 book ai didi

r - 使用 stat_summary 在线图上的形状

转载 作者:行者123 更新时间:2023-12-05 03:11:34 24 4
gpt4 key购买 nike

我敢肯定答案很简单,但目前我还不知道。我想使用 stat_summary() 制作一个折线图,每个组(表示实验条件)在每个 x 轴刻度(表示单独的时间点)处具有不同的形状。

这是数据

set.seed(124)
ID <- rep(1:12, times = 3)
Group <- rep(c("A", "B", "C"), times = 12)
score <- rnorm(36, 25, 3)
session <- rep(c("s1","s2", "s3"), each = 12)

df <- data.frame(ID, Group, session, score)

现在我可以通过为每个时间点制作一个均值表来实现目标。就像这样。

gMeans <- aggregate(score ~ session + Group, data = df, mean)

然后像这样绘制它。

pMeans <- ggplot(data = gMeans, aes(x = session, y = score, group = Group, shape = Group)) +
geom_line(aes(linetype = Group), size = 1) +
geom_point(size = 5, fill = "white") +
scale_color_hue(name = "Group", l = 30) +
scale_shape_manual(name = "Group", values = c(23,22, 21)) +
scale_linetype_discrete(name = "Group") +
theme_bw()

pMeans

不过,我希望能够跳过必须使用 stat_summary() 制作均值表的步骤。我可以获得具有不同线型的类似图表,但我无法弄清楚如何在每个组的每个轴刻度上获得不同的形状。我尝试了下面的代码以及 geom_point()geom_line() 的许多不同排列,但无济于事。我如何更改下面的代码以获得看起来像从上面的代码派生的输出的输出?

pline <- ggplot(df, aes(x=session, y=score, group = Group, shape = Group)) +
stat_summary(fun.y="mean", geom="line", size=1.1, aes(linetype=Group, shape = Group)) +
scale_shape_manual(values=c(1:3))

pline

最佳答案

这应该有助于清理图例:

library(ggplot2)

set.seed(124)
ID <- rep(1:12, times = 3)
Group <- rep(c("A", "B", "C"), times = 12)
score <- rnorm(36, 25, 3)
session <- rep(c("s1","s2", "s3"), each = 12)

df <- data.frame(ID, Group, session, score)

gg <- ggplot(df, aes(x=session, y=score, group = Group, shape = Group))
gg <- gg + stat_summary(fun.y="mean", geom="line", size=1.1,
aes(linetype = Group), show.legend=FALSE)
gg <- gg + stat_summary(fun.y="mean", geom="point", size=5,
aes(shape = Group), fill="white")
gg <- gg + scale_shape_manual(name = "Group", values = c(23, 22, 21))
gg <- gg + theme_bw()
gg <- gg + theme(legend.key=element_blank())
gg

线条被遮盖了,所以将它们保留在图例中意义不大。由于您对行使用了 stat_summary()(与嵌入了 stat="summary"geom_line() 相比,最好保留成语为点几何以及 IMO)。

enter image description here

关于r - 使用 stat_summary 在线图上的形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36808160/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com