2013-09-29 22 views
25

Tôi đã cố vẽ đồ thị chuỗi thời gian từ tệp CSV. Tôi đã quản lý để đọc tệp và chuyển đổi dữ liệu từ chuỗi này sang ngày khác bằng cách sử dụng strptime và được lưu trữ trong danh sách. Khi tôi cố gắng vẽ một âm mưu thử nghiệm trong matplotlib với danh sách chứa thông tin ngày tháng, nó vẽ ngày tháng dưới dạng một loạt các dấu chấm; đó là, trong một ngày 2012-có-31 19:00 giờ, tôi đã có một âm mưu có dấu chấm tại 2012, 05, 19, 31, 00 trên trục y cho giá trị của x = 1 và cứ tiếp tục như vậy. Tôi hiểu rằng đây không phải là cách chính xác để truyền thông tin ngày cho âm mưu. Ai đó có thể cho tôi biết cách chuyển thông tin này một cách chính xác.Cách vẽ chuỗi thời gian trong python

Trả lời

70

Chuyển đổi dữ liệu trục x của bạn từ văn bản để datetime.datetime, sử dụng datetime.strptime:

>>> from datetime import datetime 
>>> datetime.strptime("2012-may-31 19:00", "%Y-%b-%d %H:%M") 
datetime.datetime(2012, 5, 31, 19, 0) 

Đây là một ví dụ về làm thế nào để vẽ dữ liệu một khi bạn có một mảng của datetimes:

import matplotlib.pyplot as plt 
import datetime 
import numpy as np 

x = np.array([datetime.datetime(2013, 9, 28, i, 0) for i in range(24)]) 
y = np.random.randint(100, size=x.shape) 

plt.plot(x,y) 
plt.show() 

enter image description here

+1

Cảm ơn bạn. Tôi đã sử dụng time.srtptime() thay vì datetime.strptime() và điều đó gây ra sự cố – Mohanasundar

+4

Nếu bạn thấy câu trả lời hữu ích, cách để nói lời cảm ơn trong SO là bằng cách upvoting/accepting (nhấp vào khóa lên hoặc trên kiểm tra) câu trả lời :) – jabaldonedo

+2

@jabaldonedo sau đó tôi sẽ upvote bạn. Đẹp avatar btw :) – RickyA

Các vấn đề liên quan