Я пытаюсь сделать лесной участок в R, показывая результаты метаанализа. Однако я столкнулся с проблемами с помощью ggplot2. Я до сих пор не встречал аналогичных вопросов по stackoverflow и был бы очень благодарен за помощь.
Используемый мной код выглядит так (я немного изменил его, чтобы сделать его самосодержащим):
cohort <- letters[1:15]
population <- c( runif(15, min=2000, max=50000)) #hit1$N
beta <- c( runif(15, min=-1, max=2))
lower95 <- c(runif(15, min=-1.5, max=0.5))
upper95 <- c(runif(15, min=1.5, max=2.5))
type <- c("CBCL","SDQ","CBCL","SDQ","CBCL","SDQ","CBCL")
data <- as.data.frame(cbind(cohort, population, beta ,lower95,upper95,type))
ggplot(data=data, aes(x=cohort, y=beta))+
geom_errorbar(aes(ymin=lower95, ymax=upper95), width=.667) +
geom_point(aes(size=population, fill=type), colour="black",shape=21)+
geom_hline(yintercept=0, linetype="dashed")+
scale_x_discrete(name="Cohort")+
coord_flip()+
scale_shape(solid=FALSE)+
scale_fill_manual(values=c( "CBCL"="white", "SDQ"="black"))+
labs(title="Forest Plot") +
theme_bw()
И если вы запустите это, он должен выглядеть примерно так:
Rplot http://klaasjanouwens.nl/Rplot.png
Теперь у меня есть следующие проблемы:
- Ось x не читается, потому что все значения перекрываются.
- В легенде справа ( "население" ) отображаются все значения, но я хочу, чтобы она отображала только некоторые произвольные значения, такие как 5000, 10000 и 15000.
- Сюжет должен иметь пунктирную линию при y = 0, но эта строка отображается в крайнем правом углу графика, что не может быть прав.
- Я хотел бы добавить дополнительные столбцы текста справа от каждого столбца (чтобы отобразить дополнительную информацию для каждой конкретной когорты).
- Любые изменения, чтобы сделать сюжет "красивее" всегда приветствуем.
Спасибо заранее!