2016-07-10 5 views
1

私は4つの要素を有する:X1×2×3×4と対応する値:私は円グラフをプロットするときggplot2円グラフに0の値を保持する方法は?

overlap_cha <- data.frame(type=rep(c("x1","x2","x3","x4"),c(18,0,91,3)))

を、0値を持つx2は凡例に表示されません。

pie <- ggplot(overlap_cha, aes(x = 0, fill = type)) + geom_bar(width = 1) 
pie + coord_polar(theta = "y") 

どうすればよいですか?

+0

これは再現可能ではありません。 – Alex

+0

@Alexただ編集します。 –

+0

http://stackoverflow.com/questions/10834382/ggplot2-keep-unused-levels-barplotに似ていますが、私はこれらの回答をATMで作業することはできません。 –

答えて

2

これと類似であるggplot2 keep unused levels barplot ...

データを設定します(これに多分完全に同一ではないが?):

overlap_cha <- data.frame(type=rep(c("x1","x2","x3","x4"),c(18,0,91,3))) 

変数は、適切な因子レベルを持っていることを確認します:

overlap_cha$type <- factor(overlap_cha$type,levels=c("x1","x2","x3","x4")) 


library(ggplot2) 
pie <- ggplot(overlap_cha, aes(x = 0, fill = type)) + geom_bar(width = 1) 
pie2 <- pie + scale_fill_discrete(drop=FALSE)+scale_x_discrete(drop=FALSE)+ 
     coord_polar(theta = "y") 

色を変更する場合は、scale_fill_brewerを使用してください(または、values引数の場合はscale_fill_manualを使用してください)。

pie3 <- pie + 
    scale_fill_brewer(palette="Set1",drop=FALSE)+ 
    scale_x_discrete(drop=FALSE)+ 
     coord_polar(theta = "y") 

enter image description here

+0

実際、 'scale_fill_brewer'や' scale_fill_manual'は動作しません。 –

+0

本当ですか? 'scale_fill_brewer'を使っていて、うまくいくような私の例はどうですか? –

+0

'fのエラー(...、self = self):非関数の適用を試みます。何が起こった? + scale_fill_discrete(パレット= "Set1"、drop = FALSE、labels = nwLabel)+ scale_x_discrete(drop = FALSE) ) ' –

関連する問題