Ggplot2 でヴァイオリン プロットを作成する方法 (例付き)
次のメソッドを使用して、ggplot2 でバイオリン プロットを作成できます。
方法 1: グループごとにバイオリン プロットを作成する
ggplot(df, aes(x=group_var, y=values_var, fill=group_var)) +
geom_violin() +
方法 2: グループごとに水平方向のヴァイオリン パスを作成する
ggplot(df, aes(x=group_var, y=values_var, fill=group_var)) +
geom_violin() +
coordinate_flip()
方法 3: グループごとにヴァイオリン プロットを作成し、中央値を表示する
ggplot(df, aes(x=group_var, y=values_var, fill=group_var)) +
geom_violin() +
stat_summary(fun=median, geom=' point ', size= 2 )
次の例は、R の次のデータ フレームで各メソッドを実際に使用する方法を示しています。
#make this example reproducible
set. seeds (1)
#create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 100 ),
points=c(rnorm(100, mean=10),
rnorm(100, mean=15),
rnorm(100, mean=20)))
#view head of data frame
head(df)
team points
1 A 9.373546
2 A 10.183643
3 A 9.164371
4 A 11.595281
5 A 10.329508
6 A 9.179532
注: この例を再現できるようにするために、set.seed()関数を使用しました。
例 1: グループごとにバイオリン トレースを作成する
次の構文を使用して、チーム変数ごとにグループ化されたポイント変数の分布を示すバイオリン プロットを作成できます。
library (ggplot2)
#create violin plot to visualize distribution of points by team
ggplot(df, aes(x=team, y=points, fill=team)) +
geom_violin()
X 軸は各チームを表示し、Y 軸は各チームが獲得したポイントの分布を表示します。
例 2: グループごとにヴァイオリン トレースを作成する
チーム変数ごとにグループ化されたポイント変数の分布を示す水平バイオリン プロットを作成するには、単にcoord_flip()関数を追加します。
library (ggplot2)
#create horizontal violin plots to visualize distribution of points by team
ggplot(df, aes(x=team, y=points, fill=team)) +
geom_violin() +
coordinate_flip()
Y 軸は各チームを表示し、X 軸は各チームが獲得したポイントの分布を表示します。
例 3: グループごとにバイオリン プロットを作成し、中央値を表示する
次のコードは、チーム変数ごとにグループ化されたポイント変数の分布を示すバイオリン プロットを作成する方法を示しています。中央ポイント値は円で表されます。
library (ggplot2)
#create violin plots and display median points value as circle
ggplot(df, aes(x=team, y=points, fill=team)) +
geom_violin() +
stat_summary(fun=median, geom=' point ', size= 2 )
各チームの中央値は、各フィドル プロット内の小さな円で表されます。
注: 円のサイズを増やすには、 stat_summary()関数のsize引数の値を増やすだけです。
追加リソース
次のチュートリアルでは、ggplot2 で他の一般的なタスクを実行する方法を説明します。