概要

私は、統計処理にR言語をしようしているのですが、Rでは他のソフトと違い、プログラムによって計算をしたり図を描画したりできます。

そのため、GUIを使用した他のソフトよりも、細かい作業ができたり、プログラムが書けるのであれば計算の過程も変更したりとかなり柔軟性に富んでいます。

ここでは、Rで散布図をプロットする際に、点ではなく文字列を表示するための方法について紹介します。

環境

  • R 4.0.3

文字列のプロット

文字列のプロットには、text関数を使用します。

text関数では、プロットしたい文字列とその位置を引数で指定します。

具体的な例が次になります。

df = data.frame(
    x=c(1, 2, 3, 4, 5),
    y=c(10, 20, 30, 40, 50),
    labels=c('one', 'two', 'three', 'four', 'five')
)

plot(df$x, df$y, type='n')
text(df$x, df$y, label=df$letter)

normal_f5afc58b-e502-4129-917d-4cc0a948a615-1024x949.png

ここでは、Rのデータフレームを使用しているため、df$xのような書き方になっていますが、vector型やlist型などのデータを指定しておけば大丈夫です。

重要な部分はtext関数です。text関数のlabel引数の、プロットしたい文字列を指定しています。文字列は、位置の指定の順序で表示されるので、今回のデータフレームを使用したように、順番を対応づけておきましょう。

plot関数には、type='n'という引数をしていしていますが、これはプロットした際に点が一緒にプロットされてしまうと見にくくなることから、この引数を追加して点を描画しないようにしています。

このようにして散布図に文字列を表示することができました。

さいごに

今回紹介した内容は、調べてもあまり情報が見つかりませんでした。

文字列を散布図にプロットする方法を調べている人の参考になれば幸いです。