使用列表在matplotlib散点图中绘制日期和时间
有没有办法用Python的matplotlib库画一个散点图,其中x轴是日期,y轴是时间?我想用下面的两个单独的列表来实现。
dates = ['2015-12-20','2015-09-12']
times = ['22:50:12','19:33:09']
相关文章:
- 暂无相关问题
1 个回答
0
这里使用的是 plot_date
而不是 scatter
。这样做可能会满足你的需求。
import datetime
from matplotlib import pyplot as plt
from matplotlib.dates import date2num
def date_to_days(date):
return date2num(datetime.datetime.strptime(date, '%Y-%m-%d'))
def time_to_hours(time):
[hh, mm, ss] = [int(x) for x in time.split(':')]
seconds = datetime.timedelta(hours=hh, minutes=mm, seconds=ss).seconds
hours = seconds / float(3600)
return hours
if __name__ == '__main__':
start_date = '2015-08-01'
end_date = '2015-12-31'
dates = ['2015-12-20','2015-09-12']
times = ['22:50:12','19:33:09']
days = [date_to_days(d) for d in dates]
hours = [time_to_hours(t) for t in times]
plt.plot_date(days, hours, ydate=False)
plt.axis([date_to_days(start_date), date_to_days(end_date), 0, 24])
plt.xlabel('Date')
plt.ylabel('Time (hours)')
plt.show()