使用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)
希望这有帮助,下次更具体。
我希望制作这样的图表: 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)
希望这有帮助,下次更具体。