Rで箱ひげ図と1次元散布図を描く(ggplotなし)

 以下の計画行列のデータを視覚化する。aとbの2つのグループの握力のデータとして表している。groups列はaとbのグループが、valuse列には握力の値がそれぞれ記述されている。

このデータをaとbに分けて箱ひげ図や散布図を描いてみる。なお、学会発表や論文のために作図する場合は、より自由度が高く、美しい作図が可能なggplotパッケージを用いた方が良い。

groupsvalues
a32.1
a29.5
a34.8
a31.6
a32.6
a34.1
a25.3
a31.4
a30.2
a30.8
a27.7
a32.2
a31.3
a30.0
a27.8
a32.9
a34.5
a34.2
a26.4
a32.7
b34.6
b34.9
b36.2
b34.3
b35.7
b35.8
b32.3
b32.8
b35.3
b33.8
b33.1
b33.3
b34.7
b35.0
b35.9
b33.5
b34.4
b35.2
b36.4
b35.1


  • 箱ひげ図
箱ひげ図は、以下のコードになる。boxplotが関数の名前で () 内に必要な情報を入力していく。valuesgroupsを で結んでいるが、これはvaluesの値についてgroupsで分けて箱ひげ図にして、という意味。ylab=xlab=はy軸とx軸の名前を指定するという意味で、特に入力しなくても図は出力される。なお、y軸の最大値と最小値を指定したい場合は、 , で区切ってylim=c(0, 36)を付け加えればよい。この意味は0が最小で36が最大という意味。数字は任意で、、
boxplot(data1$values ~ data1$groups, ylab = "Grip_strength", xlab = "Groups")

図は以下の通りに出力される。


  • 1次元散布図
以下のコードとなる。stripchartが関数の名前で、 () 内に必要な情報を入力していく。データも軸の名前もboxplotと同じ記述方法になっている。ただし、デフォルトでは、x軸にvaluesが記載される。
stripchart(data1$values ~ data1$groups)
そこで、以下のようにvertical=を加え、TRUEにすると、valuesがy軸の図になる。
stripchart(data1$values ~ data1$groups, vertical = TRUE)


ドットが重なって見にくい場合は、method= を加えて、jitterを指定すると以下のように、ドットを横に散らしてくれる。
stripchart(data1$values ~ data1$groups, vertical = TRUE, method = "jitter")

さらに、各軸に名前を付けるときには以下のようにする。xlab=ylab=で指定すればよい。
stripchart(data1$values ~ data1$groups, vertical = TRUE, method = "jitter", xlab = "group", ylab = "Grip_strength")
図は以下のようになる。

  • 箱ひげ図と散布図を重ねる

箱ひげ図と散布図を重ねて表示するとさらにデータの見通しが立ちやすくなるかもしれない。その場合には、まずは箱ひげ図のコードを実行し、図を出力してから、散布図を重ねる処理を行う。散布図のコードにadd=TRUEを加えればよい。
boxplot(data1$values ~ data1$groups, xlab = "group", ylab = "Grip_strength")

stripchart(data1$values ~ data1$groups, vertical = TRUE, method = "jitter", xlab = "group", ylab = "Grip_strength", add = TRUE)


図は以下の通りとなる。



コメント