4
2

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.

Sweetvizの日本語文字化けを直す

Last updated at Posted at 2022-09-28

sweetvizは2行でEDAをしてくれるpythonのライブラリです。
とっても便利ですが、フォントの問題で日本語が豆腐になってしまうことがあります1

ちょっと前のバージョンから以下の一行で直せるようになってます。

sv.config_parser.read_string("[General]\nuse_cjk_font=1")

と、これだけの記事なのですが、せっかくなので何をやっているか解説していきます。

何をやってるのか

SweetvizのGithubにおいて、

  • sweetvizはconfigファイルで色々設定を変えることが可能
  • 日本語(、中国語、韓国語)は以下のようにiniファイルに書くと豆腐直せる
[General]
use_cjk_font = 1 

と紹介されています2。configファイルに関してsweetvizは何をやっているかと言うと、

  • import sweetviz 時にconfig.pyが実行される
  • config.pyの中では、pythonの標準ライブラリであるconfigperserを使用して、デフォルトのiniファイルを読み込む

という感じです。なので、豆腐を直す追加の設定(上の2行)を書いたiniファイルを読み込めばいいわけです3

import sweetviz
sweetviz.config_parser.read('path/to/my_config.ini')

いちいちiniファイルを作成するのは面倒なので、サクッとEDAだけ行いたい場合は文字列をそのまま読み込む read_string が便利です4。ただし改行は必須なので、改行コードを表す \n を使って書いたものが冒頭の一行です。

やってみる

お手元の環境、あるいはGoogle colabなどで、以下を実行すれば試せるはずです。

import pandas as pd
import sweetviz as sv

df = pd.DataFrame({'列1': [1,2,3], 'れつ2': ['栃木', '宮城', 'GUNMA']}, dtype='category')
df.info()

sv.config_parser.read_string("[General]\nuse_cjk_font=1")
sv.analyze(df).show_notebook()
  1. string型の列は棒グラフにならないので、カテゴリ型を用いてる場合に起きる問題です。

  2. https://github.com/fbdesignpro/sweetviz#new-chinese-japanse-korean-cjk-character-support 。なお、cjkはChinese、Japanese、Koreanの頭文字をとったもの。

  3. ここに書いたもの以外はデフォルトの設定が引き継がれます。

  4. https://docs.python.org/ja/3/library/configparser.html#configparser.ConfigParser.read_string

4
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?