このドキュメントについて

ggparallelパッケージは、カテゴリカル変数間で並行座標プロットをggplot2で描写するパッケージです。ggparallel::ggparallel()のヘルプドキュメントにあるExampleを実行しています。warningは非表示にしています。

準備

# インストールはCRANから
# install.packages("ggparallel")
library("ggparallel")
data(mtcars)

基本プロット

ggparallel(list("gear", "cyl"), data=mtcars)

ggparallel(list("gear", "cyl"), data=mtcars, method="hammock")

listに含まれるカテゴリカル変数間の関連が可視化されています。左から右へどのくらい流れているかで、その2つの水準の関連性の強さを図示しています。method="hammock"で、各水準の中央部分から放たれるようになります。

通常のパターンとhammockの組み合せ(adj.angle):

ggparallel(list("gear", "cyl"), data=mtcars, method="adj.angle")

上のhammockの帯の太さで、通常のパターンのように分かれていくものです。

method='parset'のパターン

ggparallel(list("gear", "cyl"), data=mtcars, method='parset')

通常のパターンで、途中で曲がらずにそのまま直線的に放たれるパターンです。

図の縦・横切替とテキストの回転

ggparallel(list("gear", "cyl"), data=mtcars, text.angle=0) + coord_flip()

text.angleでテキストの回転を指定できます。またggplot2ベースなので、coord_flip()をこのように追加していくことも可能です。

配色の変更

ggparallel(list("gear", "cyl"), data=mtcars, text.angle=0) + coord_flip() +
  scale_fill_brewer(palette="Set1") +
  scale_colour_brewer(palette="Set1")

上のパターンで配色を変更しています。これもggplot2と共通です。

3変数以上の場合

titanic <- as.data.frame(Titanic)
ggparallel(names(titanic)[c(1,4,2,1)], order=0, titanic, weight="Freq") +
  scale_fill_brewer(palette="Paired", guide="none") +
  scale_colour_brewer(palette="Paired", guide="none")

並行座標プロットは2変数に限らず、このように3つ以上の変数をつなげることも可能です。なおorderは水準の並び替えです。

幅を揃えたhammockパターン

ggparallel(names(titanic)[c(1,4,2,3)], titanic, weight=1, asp=0.5, method="hammock", ratio=0.2, order=c(0,0)) +
theme( legend.position="none") +
scale_fill_brewer(palette="Paired") +
scale_colour_brewer(palette="Paired")

ratio=0.2で繋いでいるリボンの幅比率を調整します。method="hammock"もしくはmethod="adj.angle"で有効です。またweight=1とすると、水準間の棒高・リボン幅が均一になります。

頻度によって重み付けを実施したhammockパターン

ggparallel(names(titanic)[c(1,4,2,3)], titanic, weight="Freq", asp=0.5, method="hammock", order=c(0,0)) +
theme( legend.position="none")

weitht="Freq"で棒高・リボン幅に対して頻度による重み付けを行います。

その他詳細について

デフォルト値や各オプションの詳細などは関数のヘルプを見てください。

Enjoy!