1

mm:ss.tttt 形式で取得した時間の Python Matplotlib で折れ線グラフをプロットしています。

すでに値を 10000 分の 1 秒に変換し直しており、素敵なプロットを作成できます。しかし、これは、Y 軸が読みやすい「1:23.2323」ではなく、「832323」の値を示すことを意味します。

出力値を適切にフォーマットする方法はありますか?

4

1 に答える 1

2

これを書いた直後に、私はこれを自分で解決しました。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() 
于 2013-02-04T02:27:36.327 に答える