簡體   English   中英

使用Matplotlib繪制時間戳(小時/分鍾/秒)

[英]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軸刻度的變化,您會看到日期時間展開。

在matplotlib中繪制unix時間戳

當試圖在染色體上繪制正選擇的熱圖時,我遇到了類似的煩人問題。 如果我縮小太遠,事情就會徹底消失!

編輯:此代碼完全按照您的提示繪制日期,但不會在兩者之間添加刻度。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM