我有一个箱形图,显示了干预前后的得分。我想根据另一个分数,将一些点用不同的颜色显示。
换句话说,假设十名受试者在干预之前的得分分别为(8,9,10,8,9,10,8,9,10,8)和(12,9,12,8,9, 10,10,9,10,10)。现在,使用标准ggplot箱线图,我将第1组和第2组显示为具有不同颜色的箱线图。我想用第三种颜色为一些子喷射器上色(在绘图的前后),这表明存在另一个二进制变量(例如年龄> 50)。
PreopRespondersBoxPlotLDS <- ggboxplot(data=PreopResponders,
x="Response",y="RespondersVsNonPreopLDS.preop", color = "Response", palette =
"jco", add = "jitter") + labs(title = "Left Dorsal Striatum Connectivity to the Right Occipital Cortex", y = "Connectivity")
+ theme(axis.title.x = element_blank(), legend.position="none", legend.title = element_blank(), plot.title = element_text(hjust = 0.5))
我没有收到错误消息,我只是想能够使用一种额外的颜色来为二进制变量编码。
答案 0 :(得分:0)
以下内容是问题的要求。它使用geom_boxplot
,而不是ggboxplot
。并在对geom_jitter
的调用中通过二进制条件对数据进行子集化。这种情况很容易成为二进制数据帧变量。
还要注意,我在图形标题中包含了换行符"\n"
。
library(ggplot2)
g <- ggplot(PreopResponders, aes(x = Response, y = RespondersVsNonPreopLDS.preop,
color = Response)) +
geom_boxplot() +
geom_jitter(data = subset(PreopResponders, Age > 50),
color = "black",
width = 0.25, height = 0.25) +
labs(title = "Left Dorsal Striatum Connectivity \nto the Right Occipital Cortex", y = "Connectivity") +
theme(axis.title.x = element_blank(),
legend.position = "none",
legend.title = element_blank(),
plot.title = element_text(hjust = 0.5))
g
数据创建代码。
PreopResponders <- data.frame(Response = factor(rep(c("Before", "After"), each = 10), labels = c("Before", "After")),
RespondersVsNonPreopLDS.preop = c(c(8,9,10,8,9,10,8,9,10,8),
c(12,9,12,8,9,10,10,9,10,10)))
set.seed(1234)
PreopResponders$Age <- sample(18:100, 20, TRUE)