使用ggplot2绘制条形图

Using ggplot2 to draw bar plot

我希望制作这样的图表: image from a journal

我的数据是这样的:

temp<-data.frame(agecat=c("40-49","40-49","50-59","50-59","60+","60+"),
                  ANY=c("NO","YES","NO","YES","NO","YES"),
                  median=c(0.81,0.83,0.78,0.83,0.84,0.89),
                  up=c(1.2,1.25,1.25,1.31,1.44,1.34),
                  down=c(0.53,0.41,0.41,0.47,0.56,0.69))

(图表中的 HIV 就像我图中的任何一个)

我试过下面的代码,它不起作用。

ggplot(temp,aes(agecat,median,group=ANY,color=ANY,LABEL=round(median)))+geom_point()+facet_grid(~ANYPLAQ+agecat, scales="free", space="free")+geom_errorbar(aes(ymin=down,ymax=up),width=0.2)

我只能得到这样的数字: enter image description here

我希望年龄组内和年龄组之间每列之间的宽度不同。

谁能给我一些建议,谢谢!!

很难说出发生了什么,因为您提供的数据框中的变量与 ggplot() 调用中使用的变量不同,但是 ggplot 中的许多分面错误可以通过调用 as.factor(your_variable).例如facet_grid(~as.factor(ANYPLAQ) + as.factor(agecat)希望这有帮助,下次更具体。