第3章ではggplot2を使ったグラフの作り方を紹介しています。今回はヒートマップを紹介します。ヒートマップはx軸,y軸だけでなくタイルの色で3次元的な表現ができます。ヒートマップといえば天気アプリの雨雲予報などでも見られますが、今回は集計したデータを折れ線グラフとヒートマップで比べてみるとどうなるかをRのコードを書きながら紹介したいと思います。1.使用するデータ今回は【2-7】Excelの複数シートをRで一気に読み込むで取り込んだデータを使用します。使用するFIMという架空のデータです。FIM18項目ありそれぞれ1〜7点で採点します(合計18〜126点)。FIMを3回計測し、sheetという列には1回目,2回目,3回目が入っています。read.csv(url)2.データハンドリング今回はFIMの中でもFIM_食事のデータだけを使います。この後グラフ作成で使うggplot2関数は全てtidyverseパッケージに含まれます。tidyverseパッケージを一度も使ったことがなければインストールします。install.packages("tidyverse")既にインストールしていればlibrary関数で呼び出します。データハンドリングを練習しているところであれば下のコードをみながら作成してみてください。ポイントは以下2つです。dat_eat_summarizeでは折れ線グラフを作成するのに項目という列を追加しました。dat_eat_statで個数を数える場合はn()を使います。()の中は何も入れません。なれない場合は下のリンクを参照してください。【2-4】Rで指定した列や行だけを取り出すselect関数、slice関数、filter関数を紹介します【2-6】Rでgroup_by関数とsummarize関数を使ってグラフ作成に必要な統計量(平均や標準偏差など)を求める【演習2】データハンドリングの基礎を復習します3.折れ線グラフを作るまずは折れ線グラフを作ってみます。折れ線グラフはgeom_line関数、数値を入れる場合はgeom_text関数です。平均の折れ線グラフまずdat_eat_summarizeを使って平均の折れ線グラフを作ります。ylim関数はy軸の最大値と最小値を設定します。7)実際の生データと平均を組み合わせる要約としてはこれでもいいですが、実際のデータも確認してみたいと思います。実際のデータはdat_eatにあるので使います。すると患者毎の折れ線グラフを作ることができます。して薄くしたほうが平均の線が目立ちます。4.ヒートマップを作る上の折れ線グラフもいいのですが、線が重なっているので数字が多いのか少ないのかわかりません。そのため次はヒートマップを作成してみます。ヒートマップはgeom_tile関数、またはgeom_raster関数です。geom_tile関数でヒートマップの色を指定するのにfillを指定します。色をn(カウント数)としたいので以下になります。5.タイルの色を変えるタイルの色を変えるにはscale_fill_gradientn関数を使います。折れ線グラフの線の色を変える時はscale_color_gradientn関数でした。今回は中の色を指定するのでcolorではなくfillになっています。=で2色指定するとグラデーションができます。3色以上指定すると中間の色も指定できます。"red"))すると1→3回目になるにつれて7点が増えていることがわかります。6.ヒートマップに数値を加えるヒートマップで傾向はつかめますが数値も欲しいところです。棒グラフや折れ線グラフの時と同様にgeom_text関数を使います。までは同じなので下のようにまとめることができます。数値が入ったことで見やすくなりました。7.ヒートマップに折れ線グラフを組み合わせる更にヒートマップと折れ線グラフを重ねてみます。ポイントは下に書いたコードが上に配置されます。1番上:数値2番目:折れ線グラフ3番目:ヒートマップ順番が大事です。これで十分ではありませんが、数値の変化も少し追えるようになりました。8.全部のグラフを重ねる過剰かもしれませんが、上のグラフに平均の折れ線グラフも加えてみます。順番に注意してください。9.まとめ今回はヒートマップを紹介しました。難しそうに感じますが、x軸とy軸にfillを加えるだけでヒートマップができてしまいます。アイデアを試してみるとggplot2やその前のデータハンドリングの理解にもつながりますので、3章の他のグラフも見ながらグラフ作成に挑戦してみてください。