2017-01-23 11 views
0

Iプロットのビットレートをオーバーラップ時間中のx軸matplotlibの機能に以下と時間で

#!/usr/bin/python3 
import matplotlib.pyplot as plt 
import datetime 

def plotBitrate(time,bitrate,filename): 
    time = [datetime.datetime.strptime(elem, '%H:%M:%S.%f') for elem in time] 

    plt.plot(time,bitrate) 
    plt.xlabel('Time') 
    plt.ylabel('Bitrate kbits/s') 

    plt.autofmt_xdate() 
    plt.savefig(filename, dpi = 300) 
    plt.close() 

データはこの

Time  bitrate 
00:00:00.95 33528.2 
00:00:01.47 30013.2 
00:00:01.99 26238.5 

のように見えます。しかし、プロット内の重複ティックに、この時刻の形式の結果

enter image description here

私はplt.autofmt_xdate()でx軸をフォーマットしようとしましたが、これは機能しませんでした、私はAttributeErrorを取得します: 'matplotlib.pyplot'モジュールに 'autofmt_xdate'属性がありません。

ティックが重ならないようにx軸をフォーマットできますか?

敬具

+0

ティックを重ならないようにするにはいくつかの方法があります:(a)小さいフォントサイズを使用する、(b)ダニを少なくする(つまり最大Nダニを表示する)、(c)ティッカーラベルの向きを変更する垂直)。どの方向にここに行きたいですか? – ImportanceOfBeingErnest

+0

ex plt.xticks(時間、回転= 45)に方向を変更すると、時刻形式が失われ、正しく表示されません。たぶんダニが少ないか、ダニの最大数がより良い解決策ですか? – S4M1R

+0

'plt.gcf()。autofmt_xdate()'を試したことがありますか? – ImportanceOfBeingErnest

答えて

1

autofmt_xdate()確かに重複したラベルを防ぐ良い方法です。しかし、pyplotはこのメソッドを持たず、代わりにfigureのメソッドです。

したがって

plt.gcf().autofmt_xdate() 

が仕事をするでしょう。

関連する問題