[英]Plotting timestamps (hour/minute/seconds) with Matplotlib
我想繪制一些時間戳(年 - 月 - 日小時 - 分 - 秒格式)。 我使用以下代碼,但它沒有顯示任何小時 - 分鍾 - 秒信息,它顯示為00-00-00。 我仔細檢查了我的日期數組,正如您從下面的代碼片段中看到的那樣,它們不是零。
你知道我為什么得到00-00-00的?
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()
嘗試放大圖表,隨着x軸刻度的變化,您會看到日期時間展開。
當試圖在染色體上繪制正選擇的熱圖時,我遇到了類似的煩人問題。 如果我縮小太遠,事情就會徹底消失!
編輯:此代碼完全按照您的提示繪制日期,但不會在兩者之間添加刻度。
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()
我可以告訴你為什么它顯示00:00:00。 這是因為那是特定日子的開始時間。 例如,一個時間段是2012-02-22 00:00:00(2012-02-22午夜12點),另一個是2012-02-23 00:00:00(2012-02-23午夜12點) )。
未顯示這兩次之間的時間戳的提示。
我自己正在試圖弄清楚如何在這些時間之間顯示滴答。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.