2017-05-10 6 views
0

私は表示0,0%値なしでcoord_polarプロットを実行しようとしています。私はこれを試してみたが、私は(エラー:美学は、いずれかの長さ1またはデータ(2)と同じでなければなりません:記入し、X、Y、ラベル)の誤差を持ってggplot2を使用してcoord_polarに値0を表示しないでください

a <- c("A", "B", "C") 
b <- c(0, 20, 40) 
c<- data.frame(a,b) 
c$pct <- c$b/sum(c$b) #labels positions 

p_c <- ggplot(c, aes(x=0.5, y=b, fill=a)) + 
    geom_bar(stat="identity", color="white", width=1) + 
    coord_polar(theta='y') + 
    theme_bw()+ 
    theme(panel.grid.major = element_blank(), 
    panel.grid.minor = element_blank(),      
    axis.text.x=element_blank())+ 
    geom_text(data=subset(c,b >0.05),aes(x=1.2, y=cumsum(c$b) - c$b/2, 
      label=percent(c$pct)))+ 
labs(x=NULL, y=NULL) 

p_c 

乾杯

答えて

0

ドゥあなたのデータはsubsetではありません。 ifelse

ggplot(c, aes(x=0.5, y=b, fill=a)) + 
geom_bar(stat="identity", color="white", width=1) + 
coord_polar(theta='y') + 
theme_bw()+ 
theme(panel.grid.major = element_blank(), 
     panel.grid.minor = element_blank(),      
     axis.text.x=element_blank())+ 
geom_text(data=c,aes(x=1.2, y=cumsum(c$b) - c$b/2, 
            label=ifelse(b>0.5,percent(c$pct),"")))+ 
labs(x=NULL, y=NULL) 
関連する問題