2013-07-17 33 views
6

タイムスタンプ(年 - 月 - 日時 - 分 - 秒形式)をプロットします。私は次のコードを使用していますが、時間 - 分 - 秒の情報は表示されません。00-00-00として表示されます。私は自分の日付配列を二重にチェックしました。下のスニペットからわかるように、それらはゼロではありません。Matplotlibでタイムスタンプ(時/分/秒)をプロットする

私は00-00-00の理由を知りたいですか? enter image description here

import matplotlib.pyplot as plt 
import matplotlib.dates as md 
import dateutil 

dates = [dateutil.parser.parse(s) for s in datestrings] 
# datestrings = ['2012-02-21 11:28:17.980000', '2012-02-21 12:15:32.453000', '2012-02-21 23:26:23.734000', '2012-02-26 17:42:15.804000'] 
plt.subplots_adjust(bottom=0.2) 
plt.xticks(rotation= 80) 
ax=plt.gca() 
xfmt = md.DateFormatter('%Y-%m-%d %H:%M:%S') 
ax.xaxis.set_major_formatter(xfmt) 
plt.plot(dates[0:10],plt_data[0:10], "o-") 
plt.show() 

答えて

7

あなたのグラフにズームインしてください、あなたは日付時刻があなたのx軸のスケールの変化として拡大表示されます。

plotting unix timestamps in matplotlib

染色体上に正の選択のヒートマップをプロットしようとしたとき、私は同様に厄介な問題を抱えていました。私がズームアウトした場合、遠すぎるものは完全に消えるでしょう!

編集:このコードでは、日付を正確にプロットしますが、間にティックを追加しません。

import matplotlib.pyplot as plt 
import matplotlib.dates as md 
import dateutil 

datestrings = ['2012-02-21 11:28:17.980000', '2012-02-21 12:15:32.453000', '2012-02-21 23:26:23.734000', '2012-02-26 17:42:15.804000'] 
dates = [dateutil.parser.parse(s) for s in datestrings] 

plt_data = range(5,9) 
plt.subplots_adjust(bottom=0.2) 
plt.xticks(rotation=25) 

ax=plt.gca() 
ax.set_xticks(dates) 

xfmt = md.DateFormatter('%Y-%m-%d %H:%M:%S') 
ax.xaxis.set_major_formatter(xfmt) 
plt.plot(dates,plt_data, "o-") 
plt.show() 
+0

あなたの答えをありがとう。私はすでに "matplotlibのunix timestampsをプロット"することを検討しました。しかし、私の問題は、Matplotlibは、「matplotlibのunixタイムスタンプをプロットする」質問に示すように、時分秒を表示しないことです。私の場合、それは00-00-00と表示されているだけなので、なぜ私のタイムスタンプが正しいかのように思えます。 – user1048858

+0

x軸にティックを塗りつぶしているからです私の編集された答えを見てください。 – seth

0

私は00:00:00を示す理由を教えていただけます。これが、その特定の日の開始時刻だからです。たとえば、1つのダニは2012-02-22 00:00:00(2012-02-22の深夜12時)に、もう1つは2012-02-23 00:00:00(2012-02-23の深夜12時)。

これらの2回の間のタイムスタンプのティックは表示されません。

私自身は、これらの時間の間にティックを表示する方法を理解しようとしています。