막대가 동일한 너비를 갖도록 ggplot2를 사용하여 막대 그림을 그려야합니다. 다음 데이터 세트가 있습니다. ggplot2 barplot 동일한 너비
sexratio=c("0%male","0%male","0%male","0%male","25%male","25%male","50%male","50%male" ,"75%male","75%male","100%male","100%male","100%male", "100%male")
Trainsize=c("Ts130","Ts260","Ts520","Ts1040","Ts130", "Ts1040","Ts130", "Ts1040", "Ts130", "Ts1040","Ts130", "Ts260", "Ts520", "Ts1040")
Dm1=c(354.7015, 362.6982, 369.8013, 380.7233, 363.2208, 415.8980, 367.2899, 413.7292, 365.1060, 409.1913, 366.9871, 377.3490, 389.0739, 400.5590)
mydata=data.frame(Trainsize,sexratio,Dm1)
#Reorder the fators
mydata$sexratio<−factor(mydata$sexratio,levels(mydata$sexratio)[c(2:4,1)])
mydata$Trainsize<- factor(mydata$Trainsize,levels(mydata$Trainsize)[c(2:4,1)])
나는 음모를 그릴 수 있지만, Ts260 및 Ts520의 바의 폭이 더 큰 참고 다음 코드를 사용했다.
p2<- ggplot(mydata, aes(x=Trainsize, y=Dm1, fill=sexratio)) +geom_bar(stat="identity", color="black",position=position_dodge()) +
geom_errorbar(aes(ymin=Dm1-10, ymax=Dm1+10), width=.2,position=position_dodge(.9))
따라서 Ts260 및 Ts520의 누락 값에 대해 NA를 포함하고 플롯을 다시 그립니다.
require(utils)
dat<-expand.grid(sexratio= c("25%male","50%male","75%male"), Trainsize= c("Ts260","Ts520"))
dat$Dm1<- NA
mydata<- rbind(mydata,dat)
p2<- ggplot(mydata, aes(x=Trainsize, y=Dm1, fill=sexratio)) +
geom_bar(stat="identity", color="black",
position=position_dodge()) +
geom_errorbar(aes(ymin=Dm1-10, ymax=Dm1+10), width=.2,
position=position_dodge(.9))
문제는 지금은 0 %의 남성과 100 % 남성을위한 Ts260, Ts520 사이의 공간을 줄일 않는 방법이다.
또는 어떻게 요인 TS의 수준 사이에 수직선을 그립니 까? 즉 Ts130, Ts260, Ts520, Ts1040에서 네 개의 수직선이 있습니다.
예이 제가 원하는 것입니다. 안부 인사 들께 고마워, Setye – setye