前提・実現したいこと
geopandasを用いて、色で塗り分けた地図を描画しました。
legendに日本語を含む文字列を表示したいのですが、文字化けしてしまいます。
matplotlib.pyplotで文字化けを回避する方法などを適用してみたのですが、うまくいきません。
OSは MacOS Catalinaです。
発生している問題・エラーメッセージ
凡例の日本語が文字化けする(豆腐になる)。
該当のソースコード
Python3
1import random 2import geopandas as gpd 3import matplotlib.pyplot as plt 4 5# hoge.geojsonを読み込む 6filename = "hoge.geojson" 7df = gpd.read_file(filename, encoding='SHIFT-JIS') 8 9# "target"列にランダムに文字列を入れる 10target_list = ["ほげ","ふが","ぴよ"] 11df["target"] = [random.choice(target_list) for i in range(df.shape[0])] 12 13# "target"列の文字によって地図を塗り分ける 14ax = df.plot(column="target", legend=True) 15plt.show() 16
試したこと
GeoPandasの公式ドキュメントなどをみても、フォント関連の記載は見つけられませんでした。
Python
1plt.rcParams['font.family'] = 'Noto Sans CJK JP'
と指定したが特に結果は変わりませんでした。。\
Python
1ax = df.plot(column="target", legend=True) 2font = font_manager.FontProperties(family='Noto Sans CJK JP', 3 weight='bold', 4 style='normal', size=16) 5ax.legend(prop=font) 6plt.show()
とすると、No handles with labels found to put in legend.というエラーが出ました。
回答1件
あなたの回答
tips
プレビュー