我想为分组数据创建一个箱形图,将每个组的平均值显示为框中的一个点.使用以下代码,我只得到两个组的单点.
df <- data.frame(a=factor(rbinom(100, 1, 0.45), label=c("m","w")),
b=factor(rbinom(100, 1, 0.3), label=c("young","old")),
c=rnorm(100))
ggplot(aes(y = c, x = b, fill = a), data = df) +
geom_boxplot() +
stat_summary(fun.y="mean", geom="point", shape=21, size=5, fill="white")
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用ggplot2在R中制作散点图,其中y轴的中间被折叠或移除,因为那里没有数据.我在下面的photoshop中做过,但有没有办法用ggplot创建类似的情节?这是具有连续比例的数据:
这是代码:
ggplot(data=distance_data) +
geom_point(
aes(
x = mdistance,
y = maxZ,
shape = factor(subj),
color = factor(side),
size = (cSA)
)
) +
scale_size_continuous(range = c(4, 10)) +
theme(
axis.text.x = element_text(colour = "black", size = 15),
axis.text.y = element_text(colour = "black", size = 15),
axis.title.x = element_text(colour = "black", size= 20, vjust = 0),
axis.title.y = element_text(colour = "black", size= 20),
legend.position = "none"
) +
ylab("Z-score") +
xlab("Distance")
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用类似于此问题中描述的连接线创建一个简单的箱线图:使用线和多个因子连接ggplot箱图.但是,该示例中的交互术语会产生错误:
geom_path:每组只包含一个观察.你需要调整群体美感吗?
我想使用索引变量连接每个点.这是代码:
group <- c("A","A","A","A","A","A","A","A","A","A","B","B","B","B","B","B","B","B","B","B")
session <- c("one","two","one","two","one","two","one","two","one","two","one","two","one","two","one","two","one","two","one","two")
value <- c(1.02375,1.01425,1.00505,0.98105,1.09345,1.09495,0.98255,0.90240,0.99185,0.99855,0.88135,0.72685,0.94275,0.84775,1.01010,0.96825,0.85215,0.84175,0.89145,0.86985)
index <- c(1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10)
df <- data.frame(group,session,value,index)
# Graph plots
p <- ggplot(df, aes(x=group, y=value, fill=session))
p <- p + geom_boxplot(color="grey40", outlier.alpha=0.0) #alpha=0.6
p <- p + stat_summary(fun.y=mean,geom="point",pch="-",color="white",size=8, position = position_dodge(width=0.75)) # size=2 color="black"
p <- p + geom_point(size=2, alpha=0.6, aes(group=session), data=df, position = position_dodge(width=0.75))
p <- p + geom_line(aes(group = index), alpha = 0.6, colour = "black", position = position_dodge(width=0.75), data=df) #
p <- p + …Run Code Online (Sandbox Code Playgroud)