2017-07-20 10 views
2

ggplotを使用して2つのテーブルを作成する際に問題があります。 は、私は2つのテーブルを持っている:ggplotを使用して2つのテーブルのgeom_barを作成する方法

1) 
    characteristic men_weekly_earnings 
1  16 to 24 years    493 
2  16 to 19 years    392 
3  20 to 24 years    507 
4  25 to 34 years    755 
5  35 to 44 years    964 
6  45 to 54 years    1011 
7  55 to 64 years    1021 
8 65 years and older    942 


2) 
    characteristic women_weekly_earnings 
1  16 to 24 years     451 
2  16 to 19 years     357 
3  20 to 24 years     468 
4  25 to 34 years     679 
5  35 to 44 years     781 
6  45 to 54 years     780 
7  55 to 64 years     780 
8 65 years and older     740 

各テーブルには、異なる年齢で毎週収入のデータを持っています。 私の目標は、2つのテーブルを組み合わせて like thisになるようにすることです。

x軸が特性列、y軸がweekly_earnings列です。今私は、男性のテーブルのために(このコードを試みたが、私が?

はありがとう今何ができる

ggplot(data = men) + geom_col(mapping = aes(x= characteristic,y= men_weekly_erning)) 

を働いていないために

+0

あなたが得ているエラーは何ですか? – mannym

答えて

2

は、スタックオーバーフローへようこそ!

2つのデータセットをまとめてプロットすることをお勧めします。

df_all <- rbind(cbind(setNames(men_df, c("characteristic", "weekly_earnings")), source = "men"), 
       cbind(setNames(women_df, c("characteristic", "weekly_earnings")), source = "women")) 


ggplot(data = df_all) + 
    geom_col(mapping = aes(x= source, y = weekly_earnings, fill = characteristic), position = position_dodge()) 

enter image description here

私はdf_allを作成するとき、私はソースを指定する列を追加する(どちらかの「男性」/「女性」)のデータがどこから来たのかに依存していますどのように注意してください。これにより、ggplotコールで打ち切ることができます。また、スタッキングする前に2つのデータセットの間でカラム名を一致させなければならないことにも注意してください。私はこのためにsetNamesコマンドを使用しました。


データ:

women_df <- structure(list(characteristic = c("16 to 24 years", "16 to 19 years", 
"20 to 24 years", "25 to 34 years", "35 to 44 years", "45 to 54 years", 
"55 to 64 years", "65 years and older"), women_weekly_earnings = c(451L, 
357L, 468L, 679L, 781L, 780L, 780L, 740L)), .Names = c("characteristic", 
"women_weekly_earnings"), row.names = c(NA, -8L), class = "data.frame") 

men_df <- structure(list(characteristic = c("16 to 24 years", "16 to 19 years", 
"20 to 24 years", "25 to 34 years", "35 to 44 years", "45 to 54 years", 
"55 to 64 years", "65 years and older"), men_weekly_earnings = c(493L, 
392L, 507L, 755L, 964L, 1011L, 1021L, 942L)), .Names = c("characteristic", 
"men_weekly_earnings"), row.names = c(NA, -8L), class = "data.frame") 
+0

Mike H.さん、ありがとうございました!魔法のような作品です!あなたは男です! –

関連する問題