2017-02-08 4 views
4

次のコードをプロットしようとしているgeom_pointを試しています。私は車を$ vsから離散的なレベルの要素に変換しています。そのため、変数をggplotの設定で「塗りつぶし」に割り当てることで、変数の色を両方の色で視覚化できます。ggplotはfillとscale_fill_discrete/plotの凡例との間で競合します

cars <- mtcars 
cars$vs <- as.factor(cars$vs) 

ggplot(cars,aes(x = mpg, y = disp, fill = vs)) + 
    geom_point(size = 4) + 
    scale_fill_discrete(name = "Test") 

The result is this:

あなたが見ることができるように、グラフが色を経由して「塗りつぶし」の条件の両方を区別しません。しかし、scale_fill_discreteで指定した凡例ラベルは保持されます。また

、私は以下のプロットすることができ、「色」を使用して

cars <- mtcars 
cars$vs <- as.factor(cars$vs) 

ggplot(cars,aes(x = mpg, y = disp, color = vs)) + 
    geom_point(size = 4) + 
    scale_fill_discrete(name = "Test") 

enter image description here

あなたが見ることができるように、代わりに(代わりに「埋める」の、同じコードは、「色」を使用します) 「塗りつぶし」は、色による要素のレベルを区別しますが、scale_fill_discreteを使用して凡例のタイトルに加えた変更を上書きするようです。

"fill"を間違って使用していますか?この方法を使用して、異なる色で因子の異なるレベルをプロットするにはどうすればいいですか?およびは、プロット凡例vis_fill_discreteを制御できますか?あなたがマッピングなどcolorを使用しているので

答えて

4

、あなたはscale_fill_*の代わりに対応する属性を変更するためにscale_color_*を使用することができます。

ggplot(cars,aes(x = mpg, y = disp, color = vs)) + 
     geom_point(size = 4) + 
     scale_color_discrete(name = "Test") 

enter image description here

+0

これは完全に機能します!以前のコードでは "塗りつぶし"( "色"ではなく)を使用していたので、私は困惑していました。この場合、塗りつぶしがどうしてうまくいかないかを明確にすることはできますか?それができる方法はありますか? – starbelly

+1

はい使用する関数はマッピング、つまり使用している 'color、fill、group'に対応しています。 'fill'を使用している場合は' scale_color_ * 'を使用し、' scale_fill_ * 'などを使用してください。 – Psidom

+0

しかし、' fill'と 'scale_fill_discrete'を使うときは意味がありますが、作業。しかし、 'color'と' scale_color_discrete'を使用しています。なぜ最初の方法は機能しませんし、2番目の方法は機能しますか? – starbelly

2

geom_pointfillを使用するには、使用すべき充填が可能形状:

ggplot(cars,aes(x = mpg, y = disp, fill = vs)) + 
    geom_point(size = 4, shape = 21) + 
    scale_fill_discrete(name = "Test") 

?pchを参照してください。これは、形状21〜25が色分けされ、異なる色で塗りつぶされることを示しています。 ggplotは、形状が塗りつぶし可能なものでない限り、fillを使用しません。この動作は、のように、異なるバージョンで少し変更されました。

geom_pointと使用する理由はありません。ポイントの外枠と塗りつぶしの色が異なるようにしたい場合は、colorをお勧めします。

+0

興味深い!前に 'shape'引数を扱う必要はありませんでした。ただし、この方法では黒い輪郭の円ができます。ブラックアウトラインを削除するにはどうしたらいいですか? – starbelly

+0

ああ、 'color = na'のように見えます。 – starbelly

関連する問題