2017-08-17 33 views
4

わかりやすいと思っています。基本的にはhereと同じ例です。ggplot2ダッジオーバーラップ - 各要素の幅を保持

enter image description here

ggplot(mtcars, aes(factor(cyl), fill = factor(vs))) + 
    geom_bar(position = position_dodge(preserve = "single")) 

使用しかし、私はError in position_dodge(preserve = "single") : unused argument (preserve = "single") /を取得しています。それでは、どのよう以下が、そこと同じように、この超広角バーを取得しないようにコード

ggplot(mtcars, aes(factor(cyl), fill = factor(vs))) + 
    geom_bar(position = "dodge") 

を変更するにはggplot2バージョン2.2.1

enter image description here

+0

このエラーもあります。適切な解決策が評価されます。 –

+0

@ThirstforKnowledgeはまだ何も見つかりませんでした。私は実際に空の値を埋めるためにダミーデータを構築することを考えていますが、それは光沢のためです。何とか何とかすべてを自動化する必要があります。 – AlienDeg

答えて

3

開発版in januaryでは、この引数がposition_dodgeに追加されました。それはまだCRANにはない。

この問題を回避するには、ggplot2外の統計を計算するために、次のようになります。

ggplot(as.data.frame(with(mtcars, table(cyl = factor(cyl), vs = factor(vs)))), 
     aes(factor(cyl), y = Freq, fill = factor(vs))) + 
    geom_col(position = "dodge") + 
    scale_fill_discrete(drop = FALSE) 

resulting plot

ゼロカウントがGEOMに渡されたデータに含まれているので、これは動作します。