Pao*_*tto 11 plot r lattice confidence-interval
我收集了几项研究的数据.对于每项研究,我都对性别变量的平均值感兴趣,如果这显着不同.对于每项研究,我对男性和女性都有平均值和95%置信区间.
我想做的是类似的事情:

我使用了几种类型的点图(dotplot,dotplot2,Dotplot),但没有完全实现.
使用Dotplotfrom Hmisc我设法有一个系列及其错误栏,但我对如何添加第二个系列感到茫然.
我使用Dotplot并得到了误差条的垂直结束,遵循这里给出的建议.
这是我正在使用的代码的一个工作示例
data<-data.frame(ID=c("Study1","Study2","Study3"),avgm=c(2,3,3.5),avgf=c(2.5,3.3,4))
data$lowerm <- data$avgm*0.9
data$upperm <- data$avgm*1.1
data$lowerf <- data$avgf*0.9
data$upperf <- data$avgf*1.1
# Create the customized panel function
mypanel.Dotplot <- function(x, y, ...) {
panel.Dotplot(x,y,...)
tips <- attr(x, "other")
panel.arrows(x0 = tips[,1], y0 = y,
x1 = tips[,2], y1 = y,
length = 0.05, unit = "native",
angle = 90, code = 3)
}
library(Hmisc)
Dotplot(data$ID ~ Cbind(data$avgm,data$lowerm,data$upperm), col="blue", pch=20, panel = mypanel.Dotplot,
xlab="measure",ylab="study")
Run Code Online (Sandbox Code Playgroud)
这绘制了三列数据,男性的平均值(avgm),以及95%置信区间(lowerm和upperm)的下限和上限.我有其他三个系列,对于相同的研究,对女性受试者做同样的工作(avgf,lowerf,upperf).
结果我看起来像这样:

简而言之,缺少什么:
添加第二个系列(avgf),其中包含在相同研究的其他三个变量上定义的均值和置信区间
添加一些垂直抖动,使它们不是一个在另一个上面,但读者甚至可以看到它们重叠.
Hen*_*rik 10
不幸的是我无法帮助你Dotplot,但我觉得它很简单ggplot.您只需要稍微重新排列数据.
library(ggplot2)
# grab data for males
df_m <- data[ , c(1, 2, 4, 5)]
df_m$sex <- "m"
names(df_m) <- c("ID", "avg", "lower", "upper", "sex")
df_m
# grab data for females
df_f <- data[ , c(1, 3, 6, 7)]
df_f$sex <- "f"
names(df_f) <- c("ID", "avg", "lower", "upper", "sex")
df_m
# bind the data together
df <- rbind(df_m, df_f)
# plot
ggplot(data = df, aes(x = ID, y = avg, ymin = lower, ymax = upper, colour = sex)) +
geom_point(position = position_dodge(width = 0.2)) +
geom_errorbar(position = position_dodge(width = 0.2), width = 0.1) +
coord_flip() +
scale_colour_manual(values = c("blue", "red")) +
theme_classic()
Run Code Online (Sandbox Code Playgroud)

# if you want horizontal grid lines you may change the last line with:
theme_bw() +
theme(panel.grid.major.y = element_line(colour = "grey", linetype = "dashed"),
panel.grid.major.x = element_blank(),
panel.grid.minor.x = element_blank())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8702 次 |
| 最近记录: |