我的数据如下所示:
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:删除了包含非限定值(stat_boxplot)的5行。
谢谢,
发布于 2018-12-14 01:43:56
有更多的方法可以用边框图创建散点图。我知道至少有两个:一个使用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
如果你想使用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)
结果如下所示:
https://stackoverflow.com/questions/53767057
复制相似问题