R でカテゴリカル データをプロットする方法 (例付き)
統計において、カテゴリカル データは、名前またはラベルを付けることができるデータを表します。
例としては次のものが挙げられます。
- 喫煙状況(「喫煙者」、「非喫煙者」)
- 目の色(「ブルー」、「グリーン」、「ヘーゼル」)
- 学歴(例:「高校」、「学士」、「修士」)
このタイプのデータを視覚化するために一般的に使用される 3 つのグラフは次のとおりです。
- 棒グラフ
- モザイクプロット
- グループ別の箱ひげ図
次の例は、R でこれらの各プロットを作成する方法を示しています。
例 1: 棒グラフ
次のコードは、特定のデータ フレーム内のシフトの頻度を視覚化する棒グラフを作成する方法を示しています。
library (ggplot2) #create data frame df <- data. frame (result = c('W', 'L', 'W', 'W', 'W', 'L', 'W', 'L', 'W', 'L'), team = c('B', 'B', 'B', 'B', 'D', 'A', 'A', 'A', 'C', 'C'), points = c(12, 28, 19, 22, 32, 45, 22, 28, 13, 19), rebounds = c(5, 7, 7, 12, 11, 4, 10, 7, 8, 8)) #create bar chart of teams ggplot(df, aes (x=team)) + geom_bar()
X 軸は各チームの名前を示し、Y 軸はデータ フレーム内の各チームの頻度を示します。
次のコードを使用して、グラフ内の棒を最大から最小の順に並べることもできます。
#create bar chart of teams, ordered from large to small ggplot(df, aes (x= reorder (team, team, function (x)- length (x)))) + geom_bar(fill=' steelblue ') + labs(x=' Team ')
例 2: グループ別の箱ひげ図
クラスター箱ひげ図は、カテゴリ変数ごとにグループ化された数値変数を視覚化する便利な方法です。
たとえば、次のコードは、チームごとにグループ化された得点の分布を示す箱ひげ図を作成する方法を示しています。
library (ggplot2) #create data frame df <- data. frame (result = c('W', 'L', 'W', 'W', 'W', 'L', 'W', 'L', 'W', 'L'), team = c('B', 'B', 'B', 'B', 'D', 'A', 'A', 'A', 'C', 'C'), points = c(12, 28, 19, 22, 32, 45, 22, 28, 13, 19), rebounds = c(5, 7, 7, 12, 11, 4, 10, 7, 8, 8)) #create boxplots of points, grouped by team ggplot(df, aes (x=team, y=points)) + geom_boxplot(fill=' steelblue ')
X 軸はチームを表示し、Y 軸は各チームが獲得したポイントの分布を表示します。
例 3: モザイク プロット
タイルプロットは、2 つの異なるカテゴリ変数の度数を 1 つのプロットに表示するプロットのタイプです。
たとえば、次のコードは、単一のプロット内のカテゴリ変数「result」と「team」の頻度を示すモザイク プロットを作成する方法を示しています。
#create data frame df <- data. frame (result = c('W', 'L', 'W', 'W', 'W', 'L', 'W', 'L', 'W', 'L'), team = c('B', 'B', 'B', 'B', 'D', 'A', 'A', 'A', 'C', 'C'), points = c(12, 28, 19, 22, 32, 45, 22, 28, 13, 19), rebounds = c(5, 7, 7, 12, 11, 4, 10, 7, 8, 8)) #create table of counts counts <- table(df$result, df$team) #create mosaic plot mosaicplot(counts, xlab=' Game Result ', ylab=' Team ', main=' Wins by Team ', col=' steelblue ')
X 軸はゲーム結果を表示し、Y 軸は 4 つの異なるチームを表示します。
追加リソース
次のチュートリアルでは、R で他の一般的なプロットを作成する方法を説明します。