簡體   English   中英

matplotlib中的日期時間圖問題

[英]Problems with datetime plot in matplotlib

我正在嘗試繪制一些日期時間數據,但是我有兩個無法解決的問題。 我的代碼如下:

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from datetime import datetime as DT
import numpy as np

%matplotlib inline

dt = np.dtype([('date', 'datetime64[D]'), ('count', np.uint32)])
data = np.array([(np.datetime64('2014-12-' + str(i)), i) for i in range(11,20)], dtype=dt)

fig, ax = plt.subplots(figsize=(18,8), dpi=300)
ax.plot_date(data['date'], data['count'])
#ax.set_xlim( [mdates.date2num( (data['date'][0] - np.timedelta64(1, 'D')).astype(DT) ),
               mdates.date2num( (data['date'][-1] + np.timedelta64(1, 'D')).astype(DT) )]);
  1. 在最后一行被注釋掉的情況下,我得到了一個圖,但是x標簽移到了1天的右側。
    在此處輸入圖片說明

  2. 當我嘗試將x限制設置為數據第一天的前一天和最后一天的第二天時,正確設置了限制,但是丟失了數據點 在此處輸入圖片說明

我復制了您看到的行為,並且看來matplotlib無法識別numpy datetime64類型。

這有效-將np.datetime64轉換為標准的python datetime對象:

import datetime
ax.plot_date([d.astype(datetime.datetime) for d in data['date']], data['count'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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