mm:ss.tttt 形式で取得した時間の Python Matplotlib で折れ線グラフをプロットしています。
すでに値を 10000 分の 1 秒に変換し直しており、素敵なプロットを作成できます。しかし、これは、Y 軸が読みやすい「1:23.2323」ではなく、「832323」の値を示すことを意味します。
出力値を適切にフォーマットする方法はありますか?
mm:ss.tttt 形式で取得した時間の Python Matplotlib で折れ線グラフをプロットしています。
すでに値を 10000 分の 1 秒に変換し直しており、素敵なプロットを作成できます。しかし、これは、Y 軸が読みやすい「1:23.2323」ではなく、「832323」の値を示すことを意味します。
出力値を適切にフォーマットする方法はありますか?
これを書いた直後に、私はこれを自分で解決しました。Matplotlibs の軸である set_major_formatter() 関数を使用します。
10,000 分の 1 秒単位で値を取り、それを mm:ss.tttt に戻すクイック フォーマット関数を作成しました。そして、このフォーマッタを軸定義に渡しました。
'ticker' モジュールをプロッティングのものと一緒にインポートします:
import matplotlib.pyplot as plt
from matplotlib import ticker
独自の値フォーマット関数を作成します。
def format_10Kth_time(time, pos=None):
mins = time // (10000 * 60)
secs = (time - (mins * 10000 * 60)) // (10000)
fracsecs = time % 10000
return "%d:%02d.%d" % (mins, secs, fracsecs)
次に、プロット コードで、Y 軸の書式設定を変更するためにこれを行いました。
plt.gca().yaxis.set_major_formatter(ticker.FuncFormatter(format_10Kth_time))
plt.plot(...)
plt.show()