ggplot を使ったバイオリンプロットの作り方
UB3/informatics/r/ggplot_violin
このページの最終更新日: 2024/09/30広告
概要: ggplot によるバイオリンプロットの作り方
このページでは、組み込みデータセット chickwts を使って、ggplot でバイオリンプロットを作る方法を述べる。chickwt は horsebean, linseed, soybean, sunflower meatmeal, casein の 5 種類のエサを与えられて育ったニワトリの体重データで、以下のようなデータフレームに収まっている。
まずは一番単純なプロット。
それぞれのバイオリンの上端と下端が平らになっていて、これらの水平線が最大値と最小値になっている (1)。ページ下の ボックスプロットとの重ね合わせ で見るとはっきりわかる。
geom_violin に trim = FALSE を入れると、このように上下に伸びた図が作れる。これは見た目はかっこいいのだが、
バイオリンプロットに色をつける
方法は ggplot で棒グラフに色をつける場合と全く同じである。
色をつけたいときは、aes の中で fill を指定する。fill = feed を指定しているので、feed に応じて色をつける、つまり 6 種類の色がつくことになる。他に何も指定しなければ、色は自動で割り振られる。
手動で色を設定する
chickwts の feed 列に上から並んでいる順ということで、horsebean, linseed, soybean を赤に、sunflower, meatmeal, casein を青にしてみる。
まず、色を指定するカラムを chickwts に追加しなければならない。color という名前にする。mutate() 関数 を使って追加。ちょっとカッコが多くなり見にくいが、これだと一発でグループ分けが可能。
color というカラムを fill で指定する。
バイオリンプロットの順番を変更する
これも棒グラフの場合と同じ。図にするデータフレームに order などという列を作って、x = reorder(feed, order) と指定すれば良い。
前の項で赤と青の色をつけたので、青 3 つ (casein, meatmeal, sunflower) を左側に持っていってみよう。
join() 関数 を使って、こんなふうに列を追加することもできる。
まず、順番を指定したデータフレームを作る。
これを chickwt2 と join で組み合わせると、うまい具合に番号が割り振られる。
あとは reorder を含めて図にするだけ。
バイオリンプロットにボックスプロットを重ねる
グラフの重ね合わせは、+ でもう一つグラフを追加すればよい。
広告
References
- 【R初心者向け】ggplot2でバイオリンプロット(violin plot)を描く. Link: Last access 2024/07/21.
コメント欄
サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。