2016-08-31 8 views
2

私のデータセットには、分布を見るために視覚化したいいくつかのカテゴリ変数が含まれています。複数のカテゴリ変数をプロットする方法R

ggplot(mpg, aes(manufacturer)) + geom_bar() + coord_flip() 
ggplot(mpg, aes(trans)) + geom_bar() + coord_flip() 
ggplot(mpg, aes(fl)) + geom_bar() + coord_flip() 
ggplot(mpg, aes(class)) + geom_bar() + coord_flip() 

得られbarplot:私はggplot2に設定MPGデータ内の4つの変数(製造者、トランス、FL、クラス)を視覚化したい場合

例えば、私は、コードの4行を記述する必要が:

enter image description here

どのように私はより効率的にこれを行うためのコードを書くことができますか?ループ?関数を適用しますか?可能であれば、各チャートを一度に1つずつ見たいと思います。

答えて

3

lapplyを使用するあなたの考えは一つの解決策です。

これには、aes_stringを代わりに使用する必要があります。aes

シングルプロット

これは、あなたがlapplyの最初の引数として供給し、列(名)ごとに単一のプロット作成します:あなたは上の全てのプロットが必要な場合は

lapply(c("manufacturer", "trans", "fl", "class"), 
    function(col) { 
    ggplot(mpg, aes_string(col)) + geom_bar() + coord_flip() 
    }) 

合わせてプロット

を1つのプロットエリア、miscset::ggplotGrid

library(miscset) # install from CRAN if required 
ggplotGrid(ncol = 2, 
    lapply(c("manufacturer", "trans", "fl", "class"), 
    function(col) { 
     ggplot(mpg, aes_string(col)) + geom_bar() + coord_flip() 
    })) 

結果は以下のようになります。

enter image description here

+0

ファンタスティックだそれ!クイックレスポンス@setemplerをありがとう。バーを数え順に並べる方法はありますか? – rishi

+0

@rishiはい、ここで説明します:http://stackoverflow.com/questions/5208679/order-bars-in-ggplot2-bar-graph - Alex Brownの答え – setempler

+0

@setempler各グラフの値にラベルを付けることができます。各バーの色?よろしくお願いいたします。 – user7462639

関連する問題