我想要一个刻面的条形图。表示总值的条形必须为红色,其他条形为蓝色 总值由Desc1 =" - "表示。 我有以下代码:
#df contains the following data:
#Year;Maingroup;Desc1 ;Desc2 ;Value
#2017;A ;1 ;A1 ;10
#2017;A ;2 ;A2 ;20
#2017;A ;- ;AT ;30
#2017;B ;10 ;B10 ;100
#2017;B ;20 ;B20 ;200
#2017;B ;- ;BT ;300
#2017;C ;11 ;C100 ;53
#2017;C ;22 ;C200 ;54
#2017;C ;- ;CT ;107
#add a new description
df <- df %>% unite (Oms,Desc1,Value,sep=' ',remove=FALSE)
#add color indication
df <- df %>% mutate(colv=(ifelse(Desc1=="- ","Red","Blue")))
#sort into descending order
df <- df %>% arrange(desc(Value))
#plot horizontal barchart
ggplot(df, aes(x=Desc2,y=Value))+
geom_bar(position=position_dodge(),stat="identity",fill=df$colv)+
facet_grid(~Maingroup,scale="free")+
coord_flip()
答案 0 :(得分:0)
你必须在开始时在aes()中使用fill = colv,然后使用scale_fill_manual()来定义这样的颜色:
ggplot(df, aes(x=Desc2,y=Value, fill=colv))+
geom_bar(position=position_dodge(),stat="identity") +
scale_fill_manual(values = c("blue", "red")) +
facet_grid(~Maingroup,scale="free") +
coord_flip()