この質問には 2 つの部分があります。他のソースを検索できない場合は、しばらくお待ちください。これは私の問題の一部です。
tespeedによって生成されたデータを使用してスクリプトを作成しました。データの形式は、「YYYYMMDDhhmm,ダウン レート, アップ レート,ユニット,サーバ」(hh:mm of ...) です。
201309221537,0.28,0.04,"Mbit","['speedtest server']"
201309221542,5.78,-1.00,"Mbit","['speedtest server']"
201309221543,0.15,0.06,"Mbit","[...]"
このスクリプトは、上記のデータをプロットします。
#!/usr/bin/env
python2.7
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import csv
def main():
x = []
y = []
with open('/path/to/my/public_html/stdout_tespeed_log.csv','r') as csvfile:
strData = csv.reader(csvfile, delimiter=',')
for row in strData:
x += [float(row[0])]
y += [float(row[1])]
fig = plt.figure()
plt.plot(x,y,'+', label='Average download')
plt.gca().xaxis.major.formatter.set_scientific(False)
plt.gca().xaxis.major.formatter.set_powerlimits((-2,13))
locs,labels = plt.xticks()
plt.xticks(locs, map(lambda x: "%12.0f" % x, locs))
plt.axis([x[0], x[-1],0,6.5])
plt.xticks(rotation=20)
plt.xlabel('Date [YYYYMMDDhhmm]')
fig.subplots_adjust(bottom=0.2)
# plt.legend(loc=3)
plt.gcf().autofmt_xdate()
plt.savefig("/path/to/my/public_html/speed.png")
main()
最後に、これは次のようなプロットを生成します。
時間軸がうまく構成されていません。:-/ 定期的に現れるギャップは、1 時間ごとに 60 ~ 99 分がないためです。
これを達成するエレガントな方法はありますか?たぶん、すぐに使えるモジュールですか?;-)