2017-01-24 7 views
0

私は最初の列が言語を表し、残りの列は異なるカテゴリの使用率を表します。 first column repesent the language, the rest represent percentages of useR:他のすべての数値列に対して1つのカテゴリ型列をプロットしたい

この表を1つのプロットで表したいと思います。私は積み重ね棒が最善の方法だと思った。最善の方法は、x軸に列(lang以外)を、y軸に百分率を、fill-inとしてlangを表すことです。あなたがあなたのデータを再配置する必要がggplot2使用するには

答えて

1

は '長い' 形式が?melt

library(reshape2) 
data2 <- melt(data) 

を参照してくださいint型以下は、積み上げ棒グラフを作成します

library(ggplot2) 
ggplot(data2, aes(variable, value, fill = Lang)) + 
    geom_col() 

編集

についてあなたのエラー:の最新バージョンを使用していることを確認してください- geom_colは私が信じている最近の追加です。

の代替ではなくgeom_bar()を使用することです:

ggplot(data2, aes(variable, value, fill = Lang)) + 
    geom_bar(stat = 'identity') 
+1

以外tidyrを使用してyou..Iはこのエラーを取得していますありがとうございました:エラー:関数 "geom_col"を見つけることができませんでした – Aloush87

+0

あなたは受け入れました - あなたはエラーを修正しましたか? – user127649

+0

にはまだ..あなたがここに私がやったすべてです – Aloush87

1

ちょうど別のオプション、reshape2

library(readr) 
library(ggplot2) 
library(tidyverse) 

df <- read_delim("Lang INT DIR ABS LND TOP VER IV IR REL 
Arabic 39.05 5 0 3.33 44.76 9.76 11.9 11.43 24.29 
Kiche 40.95 2.86 0 1.43 29.05 9.76 12.14 4.52 34.76 
Spanish 20.45 2.25 2.86 2.04 33.74 13.7 12.07 9.41 40.08 
Yucatec 39.56 6.63 13.27 7.86 49.63 11.3 16.46 15.48 25.31 
Zapotec 24.79 0.43 51.28 1.07 32.26 9.83 8.76 8.33 4.06", delim = "\t") 


df <- tidyr::gather(df, fields, value, -Lang) 

ggplot(df, aes(x = fields, y = value, fill = Lang)) + 
    geom_bar(stat = 'identity') 

+0

すごくいいですね!ありがとうございました。 'tidyr :: gather'を実行しているときに問題があるようです。この警告メッセージが表示されます。**属性は測定変数全体で同一ではありません。彼らは落とされます**。プロットは凝縮しているように見えますが、言語用とバーチャル用の2つのバーが表示されます。ここをクリックしてください:[https://docs.google.com/document/d/1mBmueQ07fTda6ev_6hc48gMGu1AJOE7kvIjmNITipIE/edit?usp=sharing] – Aloush87

+0

あなたのdata.frameを見て、それを私と比較してください。 tidyverse/tidyrの最新バージョンを使用していることを確認してください。それはちょうど私のコードをコピー/ペーストすることによって動作するはずです...多分あなたのデータセットでは、あなたは "Languages"という異なる名前で変数を設定し、次にあなたはやっています:tidyr :: gather(df、Language、value、-Language)これなら、最初の変数 "Language"の名前をfields ... tidyr :: gather(df、fields、value、-Language)のように変更します。それでも作業ができない場合は、エラーが発生した場合の再現可能な例を投稿してください。ここで問題を再現して助けてください。 –

+0

ありがとうございます。すべてが今働いています。私はRとパッケージの両方を更新しました。しかし、間違ったデータセットで 'tidyr :: gather'を実行した結果、エラーが発生したと思います。今私が唯一の問題は、y軸の範囲です。積み重なった棒の値はパーセンテージです。したがって、これらのパーセンテージを追加するのは意味がありません。データセット[https://docs.google.com/spreadsheets/d/1phjnQNsSawpbX-7TSCVcjWsqHuMAWu14W4RwnCSccFk/edit#gid=0]の最新バージョンはこちらです。最新のグラフ[https://docs.google.com/ドキュメント/ d/1mBmueQ07fTda6ev_6hc48gMGu1AJOE7kvIjmNITipIE /編集]もう一度ありがとう – Aloush87

関連する問題