python notebookで、csvファイルをグラフ化するとタイトルなどの日本語が豆腐になってしまうので、まずはこれを解決することに。
IPAフォントのインストール
$ sudo apt install fonts-ipaexfont
rootとしてファイルマネージャを開く
$ sudo pcmanfm
/etc/matplotlibrcをMousepadで修正
195行 #font.family : sans-serif の行を font.family : IPAexGothic
207行 #font.sans-serif : DejaVu Sans, …
頭に IPAexGothic,を追加
font.sans-serif : IPAexGothic,DejaVu Sans, …
尚、設定に問題がないかの確認のため、python notebookで次のコードを実行するように薦めるサイトがあったので、やってみた。
キャッシュのクリア
cd ~/.cache/matplotlib/
rm fontlist-v300.json
実行してみると、これだけでは’IPAexGothic’が見つからないとのエラーが出てしまい、
同じ~/.cache/matplotlib/にあるtex.cacheもフォルダごと削除する必要があった。
グラフの作成
以前の東京都のデータは発症日別による陽性者数の推移で、報告日別の陽性者数をまとめたデータでは無かった。
やむを得ず、報告日別の陽性者数をまとめたcsvファイルを自分で作成、さらに、14日移動平均、30日移動平均も併せて計算。
それが、こちら「tokyo2.csv」、UTF-8で書かれているのでexcelで開くと文字化けするので注意。 秀丸などの文字コードを自動認識するエディタで開くこと。
$ python notebook
以下のPython3ファイルを新規に作成。 Pythonもまともに分からず、ましてやmatplotlibなどチンプンカンプン。 やっとグラフが出力できたが、これ以上は無理。x軸の設定など訳がわからない。
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import ticker
plt.rcParams['font.family']='IPAexGothic'
fig = plt.figure(dpi=100,figsize=(6.4,4.8))
#CSVをUTF-8形式で読み込む
data = pd.read_csv('tokyo2.csv',encoding = 'UTF8')
ax = data.plot(x="報告年月日",y="陽性者数",color="b",label="陽性者数")
data.plot(x="報告年月日",y="14日移動平均",color="r",label="14日移動平均",ax=ax)
data.plot(x="報告年月日",y="30日移動平均",color="g",label="30日移動平均",ax=ax)
ax.set_title("東京都陽性者数推移")
ax.set_xlabel("報告年月日")
ax.set_ylabel("陽性者数",rotation=0)
ax.yaxis.set_label_coords(-0.07,1.02)
ax.tick_params(axis='x',rotation=60)
plt.savefig("tokyo.png",bbox_inches='tight')
plt.show()
なんとか作成したみっともないグラフがこちら。