4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Databricksにおけるmatplotlibの日本語対応

Last updated at Posted at 2021-03-05

2021/8/5追記
以下の記事にあるように、ノートブックのセルで%pip install japanize-matplotlibとするか、クラスターライブラリとしてjapanize-matplotlibをインストールし、import japanize_matplotlibするだけで解消できます。


サンプルノートブックはこちらからダウンロードできます。

Databricksでmatplotlibを使用する際も、日本語が文字化け(□になる)する現象に遭遇します。なお、Databricksビルトインの可視化機能では文字化けは発生しません。

これを解決するには以下の対策が必要です。

matplotlibの日本語文字化けを解決する - Qiita

しかしながら、日本語フォントをインストールしても、クラスターを停止するとフォントファイルが削除されてしまうため、追加の対策が必要です。Databricksでは、init scriptに日本語インストール処理を追加します。

init scriptによる日本語フォントのインストール

  • 以下のスクリプトを実行すると、DBFSの /databricks/scripts/japanese-font-install.sh にinit scriptが作成されます。
  • Clustersにて、日本語フォントを使用するクラスターにinit scriptを指定してください。

参考情報

# init script格納ディレクトリの作成
dbutils.fs.mkdirs("dbfs:/databricks/scripts/")
# init scriptの作成
dbutils.fs.put("/databricks/scripts/japanese-font-install.sh","""
#!/bin/bash
apt-get install fonts-takao-mincho fonts-takao-gothic fonts-takao-pgothic -y""", True)
display(dbutils.fs.ls("dbfs:/databricks/scripts/japanese-font-install.sh"))

動作確認

import matplotlib 
import matplotlib.font_manager as fm 
originalFilelist = fm.findSystemFonts()

import numpy as np
import matplotlib.pyplot as plt

# インストール済みフォントの表示
originalFilelist
# 日本語フォントの存在を確認
fm.findfont('TakaoGothic')

日本語フォントのテスト

%matplotlib inline

plt.ion()
fig2 = plt.figure()
axl = fig2.add_subplot(1,1,1)
data1 = np.arange(1001)
matplotlib.rc('font', family='TakaoGothic')
line1, = axl.plot(data1[:], label="あああtest Value")
axl.legend(loc="best")
csfont = {'fontname':'TakaoPMincho'}
hfont = {'fontname':'TakaoPMincho'}
display(fig2)

Databricks 無料トライアル

Databricks 無料トライアル

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?