【ggplot2】散布図にラベルをつける

研究R
《広告》

この記事では、前回の記事(【ggplot】散布図の作成)に引き続き、ggplot2による散布図の作成についてです。今回は、散布図のポインタにラベルをつける方法を見ていきます。

チャン・ウィンストン著、石井弓美子・河内崇・瀬戸山 雅人訳『Rグラフィックスクックブック―ggplot2によるグラフ作成のレシピ集 (第2版)』オライリー・ジャパン、2019年。

(画像から紀伊国屋書店の購入ページに移動できます)

すべてのラベルについてお任せでラベルをつける場合

ラベルを付ける場所をプログラムに任せる場合は、ggrepelパッケージにあるgeom_text_repelコマンドまたはgeom_label_repelコマンドを使用します。geom_text_repelコマンドではテキストラベルのみ、geom_label_repelコマンドではテキストラベルに囲いがつきます。

ggrepelパッケージの呼び出し

library(ggrepel)
  • library(…)は、カッコ内のパッケージを呼び出すためのコマンドです。

geom_text_repelによるラベルづけ

散布図へのラベルつけは、①散布図の作成、②ラベルの追加という2つのステップで行います。

①散布図の作成

まずは、散布図を作成したうえで、オブジェクトに代入します。

a <- ggplot(data, aes(x = 社団持分有, y = 社団持分無)) + geom_point()
  • a:散布図が代入されたオブジェクトの名称【任意】
  • 散布図を書かせるプログラムについては、以前の記事(【ggplot2】散布図の作成)で紹介した通りです。

②ラベルの追加

次に、このオブジェクトaに、次のようにラベルを付け加えます。なお、もともとのデータテーブルでは、「都道府県」という列に、北海道、青森、……といった都道府県の名前が入力されています。

a + geom_text_repel(aes(label = 都道府県), size = 3)
  • aes(label = …):ラベルとして使用するデータフレームの列を指定
  • size:ラベルのサイズ
社団医療法人における持分有無の状況(都道府県ラベルあり)

なお、この例では、Rに「重なりが多いため、ラベルをつけられなかった」旨のエラーメッセージが出力されました。グラフの左下に固まっているプロットにはラベルがつけられていません。

geom_label_repelによるラベルづけ

geom_label_repelコマンドでも、これと同様にラベルをつけることができます。

a + geom_label_repel(aes(label = 都道府県), size = 3)
  • aes(label = …):ラベルとして使用するデータフレームの列を指定
  • size:ラベルのサイズ
社団医療法人における持分有無の状況(都道府県囲いつきラベルあり)

特定のプロットに対して場所を決めてラベルをつける場合

すべてのプロットに対してではなく、特定のプロットに限定して、場所(座標)を決めてラベルをつける場合は、annotateコマンドを使用します。以下では、グラフ右上の東京のデータにラベルをつけてみましょう。

ベースとなる散布図をオブジェクトに代入する部分は上の場合と同じですから、この部分については説明を省略します。

a + annotate ("text", x = 3823, y = 2304, label = "東京")
社団医療法人における持分有無の状況(東京のみラベルあり)

この年(2019年3月31日現在)の東京都のデータは、持分あり社団医療法人(x軸)3,823、持分なし社団医療法人(y軸)2,364でした。y軸を60法人分下にずらしてみましたが、もう少し下に下げる必要がありそうです。annotateでは、ラベルを入れるx座標、y座標を指定する必要があるため、慣れるまで少々時間がかかりそうな印象を覚えました。


ただラベルがついただけですが、これだけでも散布図の印象が変わり、分析を行っているなという気分を味わえました。次は、色やプロットの形を変えて、1つのグラフのなかで種類の異なるデータ群を表示する方法について見ていきます。

コメント

タイトルとURLをコピーしました