【发布时间】:2019-12-26 05:59:02
【问题描述】:
我将随着时间的推移绘制一些温度数据,并编写了一个测试程序来看看 Matplotlib 可以为我做些什么。当我绘制日期时间未按预期显示的日期时,会输出日期,但时间是某种类型的计数器,而不是预期的时间。
样本数据:
import pandas as pd
df = pd.DataFrame([
['08/16/2019 00:00:00',70 ],['08/17/2019 00:05:00',70.5 ],
['08/17/2019 00:10:00',70.5],['08/17/2019 00:15:00',71 ],
['08/17/2019 00:20:00',72 ],['08/17/2019 00:25:00',73 ],
['08/17/2019 00:30:00',74 ],['08/17/2019 00:35:00',74.5],
['08/17/2019 00:40:00',75 ],['08/17/2019 00:45:00',74.5],
['08/17/2019 00:50:00',73 ],['08/17/2019 00:55:00',75 ],
['08/17/2019 01:00:00',72.5],['08/17/2019 01:05:00',78 ],
['08/17/2019 01:10:00',78]], columns=['Date Time', 'Temperature'])
df
Out[1]:
Date Time Temperature
0 08/16/2019 00:00:00 70.0
1 08/17/2019 00:05:00 70.5
2 08/17/2019 00:10:00 70.5
3 08/17/2019 00:15:00 71.0
4 08/17/2019 00:20:00 72.0
5 08/17/2019 00:25:00 73.0
6 08/17/2019 00:30:00 74.0
7 08/17/2019 00:35:00 74.5
8 08/17/2019 00:40:00 75.0
9 08/17/2019 00:45:00 74.5
10 08/17/2019 00:50:00 73.0
11 08/17/2019 00:55:00 75.0
12 08/17/2019 01:00:00 72.5
13 08/17/2019 01:05:00 78.0
14 08/17/2019 01:10:00 78.0
import csv
import matplotlib.pyplot as plt
import numpy as np
from datetime import datetime
path="/home/mikejs/PythonSandbox/temps.csv"
file = open(path,newline='')
reader = csv.reader(file)
header = next(reader)
dates = []
temps = []
for row in reader:
date = datetime.strptime(row[0],'%m/%d/%Y %H:%M:%S')
dates.append(date)
temps.append(float(row[1]))
plt.title("Temperatures Over Time")
plt.plot(dates,temps )
plt.ylabel('Temperatues')
plt.xlabel('Date/Time')
plt.xticks(rotation='45')
plt.tight_layout();
plt.savefig('temps.png')
plt.show()
【问题讨论】:
-
请分享一些示例输入,以便我们了解可能出现的问题。 Matplotlib 有一个完整的
date模块。 -
这是数据示例:日期时间,温度 08/16/2019 00:00:00,70 08/17/2019 00:05:00,70.5 08/17/2019 00: 10:00,70.5 08/17/2019 00:15:00,71 08/17/2019 00:20:00,72 08/17/2019 00:25:00,73 08/17/2019 00:30: 00,74 08/17/2019 00:35:00,74.5 08/17/2019 00:40:00,75 08/17/2019 00:45:00,74.5 08/17/2019 00:50:00, 73 08/17/2019 00:55:00,75 08/17/2019 01:00:00,72.5 08/17/2019 01:05:00,78 08/17/2019 01:10:00,78
-
@user2461513 使用
pandas,然后使用Provide a copy of the data。编辑您的问题并将数据放在那里。
标签: datetime matplotlib plot