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:ユニバーサルデザイン等間隔のフォント)を使ってみまます。
ゴシックも明朝も以下から一括ダウンロードできました。
他にもネットを探して好みのフォントか、いつもパワポやレポートで使っているフォントに合わせるのがいいと思います。
【商用利用可】おすすめ!無料で使えるゴシック体の日本語フリーフォント|いいフォント (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 = "がく片の幅")
お疲れさまでした。 次回以降はもっと簡単に日本語対応できるハズ、です。