2013-05-11 79 views
1

使用下面的數據幀:條形標籤可以在合併條形圖/折線圖中的相應條上出現居中嗎?

day <- c("Mon","Tues","Wed","Thurs","Fri","Sat","Sun","Week","Mon","Tues","Wed","Thurs","Fri","Sat","Sun","Week") 
day <- factor(day, level=c("Mon","Tues","Wed","Thurs","Fri","Sat","Sun","Week")) 
month<-c("Jan","Jan","Jan","Jan","Jan","Jan","Jan","Jan","Feb","Feb","Feb","Feb","Feb","Feb","Feb","Feb") 
month<-factor(month,level=c("Jan","Feb")) 
snow<-gl(1,16,labels=c("Y")) 
snow<-factor(snow,levels=c("Y","N")) 
count <- c(4,5,6,8,3,4,9,5.57,2,4,3,7,1,9,3,4.14) 
d <- data.frame(day=day,count=count,month=month,snow=snow) 

酒吧標籤中心超過一週,而不是正確的月份的酒吧:

ggplot()+geom_line(data=d[d$day!="Week",],aes(x=day, y=count, group=month, colour=month))+geom_bar(data=d[d$day=="Week",],aes(x=day, y=count, fill=month),position="dodge", group=month)+facet_wrap(~snow,ncol=1,scales="free")+scale_x_discrete(limits=levels(d$day))+geom_text(data=d[d$day=="Week",],aes(x=day, y=count,label=paste(month),vjust=1.5),position="dodge",size=3) 

可以每月標籤顯示爲中心的適當欄上?

回答

1

geom_text需要一個特定的躲閃大小的工作:

p <- ggplot(data=d[d$day=="Week",], aes(x=day , y=count, fill=month)) + 
    geom_bar(position = "dodge", width = 0.8, stat="identity") + 
    geom_text(aes(label=month, x=day, y=count), position=position_dodge(width=0.8), vjust=-.6, size=3) + 
    geom_line(data=d[d$day!="Week",], aes(x=day, y=count, group=month, colour=month)) + 
    facet_wrap(~snow,ncol=1,scales="free") + 
    scale_x_discrete(limits=levels(d$day)) 
p 

Fixed graph

+0

謝謝!這正是我期望實現的目標。我會投你一票,但我現在還沒有在這個網站上。 – blehman 2013-05-12 00:30:17

+0

您可以選擇此答案作爲*答案與綠色複選標記,雖然:) – Andrew 2013-05-12 01:29:13

+1

您在ggplot()中定義了幾個值,然後在geom_bar中使用stat =「identity」,然後正確引用geom_text中的標籤。對於那些可能和我犯同樣錯誤的人,請注意我最初使用的代碼沒有在ggplot()中定義任何內容,並導致geom_text發生故障(不會引發錯誤)。 – blehman 2013-05-12 04:27:00

相關問題