У меня есть набор данных по нескольким исследованиям. Для каждого исследования меня интересует среднее значение переменной по полу, и если это существенно отличается. Для каждого исследования у меня средний и 95% доверительный интервалы как для мужчин, так и для женщин.
Что бы я хотел сделать, это нечто похожее на это:
Я использовал несколько разновидностей точек (dotplot, dotplot2, Dotplot), но не совсем понял.
Используя Dotplot
from 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")
Здесь отображаются три столбца данных, среднее значение для мужчин (avgm) и нижняя и верхняя граница 95% доверительного интервала (нижняя и верхняя). У меня есть другие три серии, для тех же исследований, которые выполняют ту же работу для женщин (avgf, lowerf, upperf).
Результаты, которые я сделал, выглядят следующим образом:
Что не хватает, в двух словах:
-
добавление второй серии (avgf) со средствами и доверительными интервалами, определенными на трех других переменных для тех же исследований.
-
добавление какого-либо вертикального джиттера, чтобы они не были одними поверх другого, но читатель может видеть оба даже при перекрытии.