crosshyou

主にクロス表(分割表)分析をしようかなと思いはじめましたが、あまりクロス表の分析はできず。R言語の練習ブログになっています。

内閣支持率のデータ分析2 - R言語のbarplot関数の練習。beside = TRUE/FALSE とlegend.text = TRUEが大事

 

www.crosshyou.info

 の続きです。

今回はbarplot関数の練習をしてみようと思います。

習うより慣れろの精神でいろいろやってみます。

まずはデータを確認します。

f:id:cross_hyou:20191123114804p:plain

1列目は文字(ファクター)で、2、3、4列目が数値データですね。

まずは、barplot(df)としてみます。

f:id:cross_hyou:20191123115002p:plain

エラーになりました。'height'はベクトルか行列でなければなりません。とのことです。

それでは、1列目を削除して行列にしてからbarplot関数をやってみます。

f:id:cross_hyou:20191123115334p:plain

1行目、mx <- df[ , -1] で1列目のSourceを除いたデータフレームをつくり、それを2行目のas.matrix関数で行列にして、rownames関数でSourceを列名にしてclass関数で行列になったかどうかを確認しています。行列になりましたね。

それでは、barplot関数をやってみます。

f:id:cross_hyou:20191123115735p:plain

f:id:cross_hyou:20191123115749p:plain

なるほど、列でまとめて積み重ねたグラフになるのですね。そうしたら、行でまとめたグラフはt関数で縦横を転換すればいいのかな?

f:id:cross_hyou:20191123120030p:plain

f:id:cross_hyou:20191123120041p:plain

おお、予想どおりですね。Totalを除いてやってみましょう。

f:id:cross_hyou:20191123120315p:plain

f:id:cross_hyou:20191123120332p:plain

積み重ね俸グラフでなくて、横に並んだ棒グラフにしてみます。たぶん、何か引数で指定すればいいと思いますので、ヘルプ画面で確認します。

f:id:cross_hyou:20191123120825p:plain

f:id:cross_hyou:20191123120835p:plain

この下に各引数の説明が書いてあって、どうやらbeside = TRUEにすると横に並んだ俸グラフになるらしいです。

やってみましょう。

f:id:cross_hyou:20191123121141p:plain

f:id:cross_hyou:20191123121150p:plain

うまくいきましたね!

上のグラフでは、色の濃いのと薄いのでどっちがForでどっちがAgainstかわからにですね。どっちがどうかというのも表示したいですよね。。。ヘルプをよく読んだら、legend.text = TRUEってするといいらしいです。やってみます。

f:id:cross_hyou:20191123121749p:plain

f:id:cross_hyou:20191123121802p:plain

できましたね!色の濃い棒がForで、色の薄い棒がAgainstでした。

今回は以上です。