我的数据如下:
d1 <- read.table(header = TRUE, text =
"a1c att status
8.500000 23.58333 case
8.450000 12.25000 control
8.266667 18.91667 control")
a1c att status
1 8.500000 23.58333 case
2 8.450000 12.25000 control
12 8.266667 18.91667 control
我想制作a1c
和att
的联合分布的箱形图(例如在x轴上为a1c,在y轴上为att),并在箱图中用status
上色的点第三列。假设情况是红色的情节并控制了蓝色的点。
到目前为止,我已经尝试过:
ggplot(data = d1, aes(x = a1c, y = att, group=status)) +
geom_boxplot(colour = d1$status) + geom_jitter(position = position_jitter(
width = .1, height=0))
我收到以下警告:
此外:警告消息:1:删除了68行,其中缺少行 值(stat_boxplot)。 2:删除了包含非限定值的5行 (stat_boxplot)。
谢谢
答案 0 :(得分:0)
使用边际箱线图创建散点图的方法不止一种。我至少知道2个:一个带有ggplot
和ggExtra
,另一个带有包car
:
您的数据:
d1 <- read.table(header = TRUE, text =
"a1c att status
8.500000 23.58333 case
8.450000 12.25000 control
8.266667 18.91667 control")
如果您想使用ggplot
,我相信您需要ggExtra
才能完成这项工作。以下代码可以解决问题
# load the packages
library(ggplot2)
library(ggExtra)
# make a usual ggplot and store it
# point size increased, legend to the bottom
p1 <- ggplot(d1, aes(x=a1c, y=att , color=status)) +
geom_point(size=2.5) +
theme(legend.position="bottom")
# marginal boxplot
# relative size of the central plot increased
ggMarginal(p1, type="boxplot", size=7)
这将导致显示此图(当然,您可能会玩弄主题等):
library(car)
scatterplot(d1$a1c ~ d1$att | d1$status,
boxplots = "xy", regLine=FALSE, fill=d1$status, cex=2)
结果如下图所示: