2017-04-27 22 views
-1

私はしかし、x軸これは、データを正しく表示するMatplotlib x軸を曜日に対応させる方法は?

percent = [] 
count = 0 
time = [] 
for x, y in zip(counts100, counts): 
    percent.append(float(x/y)) 
    time.append(count) 
    count += 1 


plt.xlabel('weekday') 
plt.ylabel('% score over 100') 
plt.plot(time, percent) 
plt.gcf().autofmt_xdate() 
plt.show() 

私はx軸をプロットする簡単なインクリメンタを使用しています分でpercent of scores over 100 by hour

週間でスコアをプロットしたグラフを持っています数字を読み込みます。

どうすれば平日に変換できますか?おかげ

EDIT: 私はこの答えhereを発見し、私は私の問題と、それはほとんど作品にそれに合うようにしようとしていますが、私は奇妙なエラー

File "/usr/local/lib/python3.5/dist-packages/matplotlib/dates.py", line 401, in num2date 
return _from_ordinalf(x, tz) 
File "/usr/local/lib/python3.5/dist-packages/matplotlib/dates.py", line 254, in _from_ordinalf 
    dt = datetime.datetime.fromordinal(ix).replace(tzinfo=UTC) 
ValueError: ordinal must be >= 1 

答えて

0

私は解決策hereを見つけを得続けます。私の質問では、私はX軸に沿ってプロットされる値を変更していませんでした。

percent = [] 
count = 0 
time = [] 
for x, y, z in zip(counts100, counts, hour): 
    percent.append(float(x/y)) 
    time.append(count) 
    count += 1 
    print("the percent is : {:.4f} for hour {}".format(float(x/y), z)) 



times = pd.date_range('2017-10-06 00:00', periods=count, freq='1H', tz = 'UTC') 

fig, ax = plt.subplots(1) 
fig.autofmt_xdate() 

plt.xlabel('weekday') 
plt.ylabel('% score over 100') 
plt.plot(times, percent) 
xfmt = mdates.DateFormatter('%d %H:%M') 
ax.xaxis.set_major_formatter(xfmt) 

plt.show() 

enter image description here

関連する問題