見出し画像

R | ggplot | geom_barで棒グラフを描きたい

*ハイライト*
・ggplotで棒グラフが描ける
・実数はstat = “identity”でプロットできる

install.packages("tidyverse") 
library(ggplot2)

df <- data.frame(
  subject = c("x1", "x2", "x3", "x4", "x5", "x6"),
  weight = c(45, 53, 56, 72, 65, 50))
head(df, 2)

g <- ggplot(df, aes(x = subject, y = weight))+ 
  geom_bar(stat = "identity")
plot(g)

コードの説明

#パッケージのインストール

最初にパッケージをRにインストールしましょう。gglpot2tidyverseというパッケージに内包されているので,tidyverseをインストールし,ggplot2をライブラリーします。

install.packages("tidyverse") 
library(ggplot2)

#データフレームの作成

ggplotで棒グラフを作成するために被験者6人の体重を表しているデータフレームを作成します。subjectは「被験者」を,weightは「体重」を表しています。

df <- data.frame(
 subject = c("x1", "x2", "x3", "x4", "x5", "x6"),
 weight = c(45, 53, 56, 72, 65, 50))
head(df, 2)

  subject   weight
1    x1     45
2    x2     53
:     :      :

#棒グラフの描画

ggplotで被験者をX軸に,体重をY軸にマッピングし,体重の値に従って棒グラフを作成します。まずggplotのなかに使用するデータフレーム,データセットの中の変数をX軸やY軸に割り当てます。今回は体重の値をそのまま表示させたいので,geom_bar()の中身をstat = "idenetity"にしました(1)。

g <- ggplot(df, aes(x = subject, y = weight))+ 
 geom_bar(stat = "identity") 
plot(g)

#エラーの出し方

もしgeom_barの統計処理の部分を指定せずに図を描画しようとした場合は以下のようなエラーが出ます。これはgeom_barの統計的処理の初期値がstat = “count”であり,X軸にそれぞれ該当するデータの個数をカウントし,描画するコードになります。今回はすべて同じ個数であり,エラーを返されました。

g <- ggplot(df, aes(x = subject, y = weight))+ 
 geom_bar()
plot(g)

Error in `f()`:
! stat_count() can only have an x or y aesthetic.
Run `rlang::last_error()` to see where the error occurred.

(1)geom_bar()は,デフォルトで統計的な処理がstat = "count"担っているので,指定しなければX軸の水準に該当するデータの個数をY軸に表示します。

■Rグラフィックスクックブック第2 ―ggplot2によるグラフ作成のレシピ集/Winston Chang (), 石井弓美子 (翻訳), 河内崇 (翻訳), 瀬戸山雅人 (翻訳)

改訂2 RユーザのためのRStudio[実践]入門〜tidyverseによるモダンな分析フローの世界/松村優哉 (), 湯谷啓明 (), 紀ノ定保礼 (), 前田和寛 ()

■Rが生産性を高める〜データ分析ワークフロー効率化の実践/igjit (), atusy (), hanaori ()


いいなと思ったら応援しよう!