微生物屋のノート

プログラミング・解析関連についてのノートです。

ggplot の書式、特殊文字

ggplot2 内で、モデル式やR2 といった累乗の記号、ギリシャ文字を書きたいことが多々あると思います。

その場合は、expression 関数の例が多いと思うのですが(ggplot2でギリシャ文字や数式を表示したい - Qiita)、markdown や、文字コードを使っても色々かけます。

ggtext::element_markdown

markdown 形式で書くためのパッケージ・関数が、ggtext パッケージの element_markdown です。
Markdown theme elements • ggtext

使い方は、文字列を markdown 形式で書いて、theme で指定してやるだけです。
プロットエリア内は、geom_richtext を使います。
Improved Text Rendering Support for ggplot2 • ggtext

library(ggplot2)
library(ggtext)

g = ggplot()+
    geom_richtext(aes(x=1, y=1, label="*Hello*<br>world</br>"))+
    labs(x="*italic*", y="**bold**",
         title="square<sup>2</sup> subscript<sub>2</sub>")+
    theme(
      plot.title = element_markdown(),
      axis.title.x = element_markdown(),
      axis.title.y = element_markdown()
    )

plot(g)

自分が markdown に詳しくないのですが、どんな markdown でも対応しているわけではなさそうです。
書き方を調べるうえでは、Rmarkdownの書き方を参考にすれば、うまくいくことが多いです。

以下、element_markdown での書き方の例です。
順次更新していこうと思います。

斜体 *word*
<en>word<en/>
太字 **word**
上付き <sup>word<sup/>
下付き <sub>word<sub/>
下付き <sub>word<sub/>
アルファ(α)
斜体アルファ(α)
&alpha;
<i>&alpha;</i>
ベータ(β) \&beta;
<i>&beta;</i>
シータ(θ) \&theta;
<i>&theta;</i>

文字コード

「≧ (以上、大なりイコール)」などの特殊文字は、文字コードを使えば楽でした。
使い方は、uから始まる文字コード (u0020など)の前にバックスラッシュをつけるだけです。

library(ggplot2)
library(ggtext)

g = ggplot()+
    geom_richtext(aes(x=1, y=1, label="y = x <br> *P* \u2265 0.05"))
plot(g)


これの便利なところが、IMEパッドを開けば対応する文字コードがわかるので、いろんな文字をRで表示できそうです。