【发布时间】:2019-03-07 18:17:21
【问题描述】:
我在 ggplot2 中绘制了一个图形,显示了个人参与者的价值和群体的手段。我想使用非填充点显示单个值,并且意味着使用填充点,按颜色分组。
以样本数据为例:
group <- c("high", "high", "high", "low", "low", "low", "high", "high", "high", "low", "low", "low")
condition <- c("c1", "c1", "c1", "c1", "c1", "c1", "c2", "c2", "c2", "c2", "c2", "c2")
value <- c(.91, .63, .5, NA, NA, NA, .93, .76, .43, .5, .6, .8)
subj <- c("s1", "s2", "s3", "s4", "s5", "s6")
sample.data <- data.frame(group, condition, value, subj)
ggplot(sample.data, aes(x=condition, y=value)) +
geom_point(aes(colour=group, shape = group), size = 2, position = position_dodge(.1)) +
scale_shape_manual(values=c(2,1)) +
geom_line(aes(group=subj), colour='lightgrey') +
stat_summary(fun.y=mean, geom = "point", aes(shape=group, fill = group),
size=5, position = position_dodge(.1)) +
stat_summary(fun.y = mean, aes(group=group, colour=group), geom='line',
size=.8, position = position_dodge(.1))
在代码中我指定我希望填充由组确定,但这不起作用,如图所示。我还尝试添加scale_shape(solid=FALSE),如下所示:
ggplot(sample.data, aes(x=condition, y=value)) +
geom_point(aes(colour=group, shape = group), size = 2, position = position_dodge(.1)) +
scale_shape(solid = FALSE) +
geom_line(aes(group=subj), colour='lightgrey') +
stat_summary(fun.y=mean, geom = "point", aes(shape=group, fill = group),
size=5, position = position_dodge(.1)) +
stat_summary(fun.y = mean, aes(group=group, colour=group), geom='line',
size=.8, position = position_dodge(.1))
但这会产生完全相同的数字。
【问题讨论】:
-
哦,等等,对不起,你这样做了。你想要你的
stat_summary行和你的geom_points 不同的scale_shape值吗?你能指定哪些点应该填充,哪些应该是空心的? -
您给出的形状,形状 1 和 2,只是轮廓。 sthda.com/english/wiki/… 等效的轮廓和填充形状将是 21 和 24