【Python】【Flask】flashメッセージの出力方法
MAX
MAX999blog
seabornやmatplotlibでグラフ描画する時に日本語が混じっていると文字化けが発生する。
少し前までは、matplitlibでグラフ作成をする場合はfontを設定する必要があったが、今ではjapanize_matplotlibをimportするだけで日本語が正常に表示されるようになる。
seabornでグラフを作成する場合も、fontに日本語対応フォントを設定するかjapanize_matplotlibをimportすれば、日本語が正常に表示される。
グラフ作成対象のデータ作成。日本語多め。
1import pandas as pd
2
3data1 = [25, 25, 30]
4data2 = [15, 25, 28]
5index = ["Aさん", "Bさん", "Cさん"]
6df = pd.DataFrame(data={"収入": data1, "支出": data2}, index=index)
7
8# 名前毎に収入と支出をまとめて棒グラフを作成する
9data = df.stack().rename_axis(["名前", "分類"]).reset_index().rename(columns={0: "金額(万円)"})
10print(data)
11# 名前 分類 金額(万円)
12# 0 Aさん 収入 25
13# 1 Aさん 支出 15
14# 2 Bさん 収入 25
15# 3 Bさん 支出 25
16# 4 Cさん 収入 30
17# 5 Cさん 支出 28
グラフ作成のためにmatplotlibとseabornを単純にインポートしただけだと文字化けする。
1import matplotlib.pyplot as plt
2import seaborn as sns
3
4plt.figure(figsize=(16, 9), facecolor="w")
5sns.barplot(data=data, x="名前", y="金額(万円)", hue="分類")
6title = "収入と支出"
7plt.title(title)
8plt.legend(loc="upper left", bbox_to_anchor=(1,1))
タイトル、x軸、y軸、レジェンドなど、全て文字化けしている。
japanize_matplotlibをインストールしていない場合はpipからインストールする。
1> pip install japanize-matplotlib
japanize_matplotlibをインポートするだけで文字化けが解消する。
1import japanize_matplotlib
2
3plt.figure(figsize=(16, 9), facecolor="w")
4sns.barplot(data=data, x="名前", y="金額(万円)", hue="分類")
5title = "収入と支出"
6plt.title(title)
7plt.legend(loc="upper left", bbox_to_anchor=(1,1))
日本語が正常に表示される。
japanize_atplotlibをimportしても良いが、日本語対応のフォントを設定することでも文字化けは解消する。
1# フォントをmeiryoに設定
2sns.set(font="meiryo")
3
4plt.figure(figsize=(16, 9), facecolor="w")
5sns.barplot(data=data, x="名前", y="金額(万円)", hue="分類")
6title = "収入と支出"
7plt.title(title)
8plt.legend(loc="upper left", bbox_to_anchor=(1,1))
meiryoは特にフォントをインストールする必要もなく、パワーポイントでの資料作成時などにもよく使うフォントなのでおススメ。