Google ColaboratoryのRのggplotを日本語に対応させる(お好みのフォントを使用)

ハウツー

Rを使ってグラフを作成していく前に、グラフの中で日本語が使えるようにする必要があります。

本日は、日本語フォントが使えるようにしていきます。

スポンサーリンク

本日のメニュー:Rのグラフで日本語フォントを使えるようにする

Google Colaboratoryにログイン

いつものように、まずはGoogle Colabにログインしましょう。

公式サイト

ファイルから「ノートブックを新規作成」をクリックし、新しいノートブックを作成します。

Googleドライブのマウント(必要に応じて)

次にインストール済みのパッケージを読み込むため、Googleドライブをマウントします。

インストール済みのRのパッケージを解凍(必要に応じて)

インストール済みのRのパッケージを解凍します。(圧縮保存したファイルの解凍)

%%shell
# Colab Notebooksのフォルダにlibrary.tar.gzを保存しておいた場合、インストールしたパッケージの復活
tar xzf "/content/drive/MyDrive/Colab Notebooks/library.tar.gz"

過去に「Colab Notebooks」に圧縮保存していたフォルダ「library」が解凍されて出現します。

PythonとRで分析する準備

PythonとRで分析する準備をします。

Pythonの基本的な準備

# Pythonの分析の準備
import numpy as np
import pandas as pd
import seaborn as sns
pd.options.plotting.backend = "plotly"
import rpy2
import rpy2.robjects as robjects
# Rを使えるようにする
%load_ext rpy2.ipython

Rの基本的な準備

前回までにインストールしていないパッケージをインストールします。その他、インストールしていないパッケージがあれば、追加インストールします。

%%R
.libPaths("library")   # libraryの保存先フォルダ指定
# install.packages("openxlsx")
# install.packages("DT")
# install.packages("Rcpp")   # 前提パッケージ
# install.packages("htmlwidgets")   # 前提パッケージ
# install.packages("crosstalk")   # 前提パッケージ
install.packages("extrafont")
install.packages("systemfonts")

インストールした場合は、以下コードでlibraryの圧縮ファイルを保存しておきましょう。

# library以下のパッケージをColab Notebooksに直接圧縮保存(上書き)
import tarfile
with tarfile.open('/content/drive/MyDrive/Colab Notebooks/library.tar.gz', 'w:gz') as tar:
  tar.add('library')

Rの準備をします。

※コメントのlibrary(openxlsx), library(DT)は必要に応じてコメントを外します

# Rの分析の準備
%%R
.libPaths("library")   # libraryの保存先フォルダ指定
library(tidyverse)
library(readxl)
library(extrafont)
library(systemfonts)
#library(openxlsx)    # 必要に応じて実行
#library(DT)    # 必要に応じて実行
# パッケージを保存していない場合、インストール(時間かかります)
# install.packages("openxlsx")
# install.packages("DT")
# install.packages("Rcpp")    # 前提パッケージ
# install.packages("htmlwidgets")    # 前提パッケージ
# install.packages("crosstalk")   # 前提パッケージ
# install.packages("extrafont")
# install.packages("systemfonts")

Rで日本語を使ってグラフを作成すると文字化けする

iris(アヤメ)のデータを確認します。

%%R
iris %>% head() # iris(アヤメ)データの先頭6行を表示

irisのデータを使って、X軸、Y軸を日本語に変えてグラフを作ってみます。

# Rのggplotで日本語を使ってグラフ作成
%%R
iris %>%
  ggplot(aes(x = Sepal.Length, y = Sepal.Width, col = Species)) + 
  geom_point(size=3) +
  labs(x = "がく片の長さ", y = "がく片の幅")

文字化け(豆腐)になってしまいました。。うーん。

フォントを入れる

フォントはお好みで良いですが、ここではBIZ UD ゴシックおよび明朝(UDPではなくUD:ユニバーサルデザイン等間隔のフォント)を使ってみまます。

ゴシックも明朝も以下から一括ダウンロードできました。

BIZ UDMincho – Google Fonts

他にもネットを探して好みのフォントか、いつもパワポやレポートで使っているフォントに合わせるのがいいと思います。

【商用利用可】おすすめ!無料で使えるゴシック体の日本語フリーフォント|いいフォント (goodfreefonts.com)

IPA Font ダウンロード | 一般社団法人 文字情報技術促進協議会 (moji.or.jp)

ゴシック体のフリーフォント15選【商用利用可】 (levtech.jp)

ダウンロードできました。

これをGoogle Colaboratoryの「MyDrive」に新たに「fonts」フォルダを作り、zipファイルは解凍せずに、そのまま保存します。

以下コードを実行すると、フォントが解凍されます。解凍先ディレクトリは同じディレクトリ /content/drive/MyDrive/fonts を指定しています。

!unzip "/content/drive/MyDrive/fonts/BIZ_UDGothic,BIZ_UDMincho.zip" -d "/content/drive/MyDrive/fonts"

以下コードで、まだフォントがないことを確認します。

%%R
fonts()

以下のコードで解凍したフォントをインポートし、フォントをロードします。

%%R
font_import(paths = "/content/drive/MyDrive/fonts")

以下の表示がでたら y と入力します。

以下コードを実行しておきます。

%%R
loadfonts()

以下のコードでインポートしたフォントを確認できます。

%%R
fonts()

以下コードを実行します。(Ubuntu apt-getで日本語フォントを使えるようになるみたいです)

%%R
system("apt-get install -y fonts-noto-cjk", intern=TRUE)

しかし、まだ日本語でグラフ出力できません。まだ作業が必要です。。

# Rのggplotで日本語を使ってグラフ作成
%%R
family_sans <- "BIZ UDGothic"
family_serif <- "BIZ UDMincho"

iris %>%
  ggplot(aes(x = Sepal.Length, y = Sepal.Width, col = Species)) +
  geom_point(size=3) +
      theme(text=element_text(family=family_sans, face="plain", size=12),
       title=element_text(face="plain"),
       axis.title=element_text(face="plain"),   # 標準はplain、太字はbold
       axis.text.x = element_text(angle = 45, hjust = 1)
    ) +
    labs(x = "がく片の長さ", y = "がく片の幅")

ここでセッションを再起動するか、exit()を実行して再起動します。

または、

exit()

あらためて、Python、Rの準備をします。。。(本当に必要なんだろうか)

# Pythonの分析の準備
import numpy as np
import pandas as pd
import seaborn as sns
pd.options.plotting.backend = "plotly"
import rpy2
import rpy2.robjects as robjects
# Rを使えるようにする
%load_ext rpy2.ipython
# Rの分析の準備
%%R
.libPaths("library")   # libraryの保存先フォルダ指定
library(tidyverse)
library(readxl)
library(extrafont)   # フォントの設定
library(systemfonts)
#library(openxlsx)    # 必要に応じて実行
#library(DT)    # 必要に応じて実行
# パッケージを保存していない場合、インストール(時間かかります)
# install.packages("openxlsx")
# install.packages("DT")
# install.packages("Rcpp")    # 前提パッケージ
# install.packages("htmlwidgets")    # 前提パッケージ
# install.packages("crosstalk")   # 前提パッケージ
# install.packages("extrafont")
# install.packages("systemfonts")

念のため、フォントが読み込まれていることを確認します。

%%R
fonts()

ようやく日本語グラフが出力できました。

# Rのggplotで日本語を使ってグラフ作成
%%R
family_sans <- "BIZ UDGothic"
family_serif <- "BIZ UDMincho"

iris %>%
  ggplot(aes(x = Sepal.Length, y = Sepal.Width, col = Species)) +
  geom_point(size=3) +
      theme(text=element_text(family=family_sans, face="plain", size=12),
       title=element_text(face="plain"),
       axis.title=element_text(face="plain"),   # 標準はplain、太字はbold
       axis.text.x = element_text(angle = 45, hjust = 1)
    ) +
    labs(x = "がく片の長さ", y = "がく片の幅")

お疲れさまでした。 次回以降はもっと簡単に日本語対応できるハズ、です。

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