2017-03-19 2 views
1

私はRを学習していますが、データフレーム内の 'cluster'列の値によって定義される3つのグループのヒストグラムを含む複合ヒストグラムを作成しようとしています。ggplotはグループ別にヒストグラムを表示しません

データは次のようになります。

TOTAL_Estimated_Collateral_value_sum cluster 
1       -0.17499342  1 
2       -0.86443362  1 
3       0.22211949  2 
4       0.01007717  1 
5       -0.77617685  2 
6       -1.43518056  1 
7       -0.19705983  1 
8       -0.39170108  1 
9       -0.94073376  1 
10       1.20525601  2 

TOTAL_Estimated_Collateral_value_sum cluster  
Min. :-1.7697      Min. :1.000 
1st Qu.:-0.7626      1st Qu.:1.000 
Median :-0.1322      Median :1.000 
Mean : 0.0000      Mean :1.329 
3rd Qu.: 0.8459      3rd Qu.:2.000 
Max. : 1.8782      Max. :3.000 
> table(df_all$cluster) 

    1  2  3 
24342 8565 1350 

私が使用していたコードは以下の通りです:

ggplot(df_all, aes(x=TOTAL_Estimated_Collateral_value_sum, color=cluster)) + 
    geom_histogram(alpha = 0.7, position="dodge") 

私が手の画像は以下の通りです:

histogram

ご覧のように、観測値は私が期待するクラスター。

なぜこれが当てはまるのか、私のコードを修正して期待される出力を得るために何をすべきか説明してください。

答えて

3

clusterfillにマッピングする必要があります。colorではなく、clusterを入力する必要があります。だから、試してみてください。

ggplot(df_all, aes(x=TOTAL_Estimated_Collateral_value_sum, fill=cluster)) + 
    geom_histogram(alpha = 0.7, position="dodge") 

あるいは、clusterが要因ではない場合:

ggplot(df_all, aes(x=TOTAL_Estimated_Collateral_value_sum, fill=as.factor(cluster))) + 
    geom_histogram(alpha = 0.7, position="dodge") 
+0

ありがとうございました。出来た。ちなみに、私のデータフレームには多くのカラム-80 +があります。これらのヒストグラムは各カラムごとに行う必要があります。おそらくループを使用して、このプロセスを自動化する方法はありますか? – ak7

+0

はい、出力の種類に応じて、 'lapply'や' apply'を使って列を繰り返し処理することができます。しかし、それはまったく別の魚の釜です。 – ulfelder

関連する問題