我是菜鸟,我制作了采用最新CSV的脚本,并用matplotlib绘制图形。但我的日期显示小时,分钟,秒,我猜几毫秒。在CSV中,我有几年,几个月,几天,几小时,几分钟和几秒钟。如何以最简单和noob友好的方式调整我的代码,以CSV格式显示日期?
Python脚本:
query = "UPDATE LDV SET received = @received, department = @department WHERE Id = @Id ";
command.Parameters.AddWithValue("@Id", idTxt.Text);
我的csv数据:
from matplotlib import pyplot, dates
from csv import reader
from dateutil import parser
import os
import time
import pylab
import datetime
from datetime import datetime
os.chdir('/home/pi/csvdata')
def plotloop():
for plotinsideloop in range(24):
dated_files = [(os.path.getmtime(fn), os.path.basename(fn))
for fn in os.listdir("/home/pi/csvdata") if fn.lower().endswith('.csv')]
dated_files.sort()
dated_files.reverse()
newest = dated_files[0][1]
with open(newest) as f:
data = list(reader(f))
humidity = [i[1] for i in data]
dates1 = [i[0] for i in data]
dates = [datetime.strptime(i, '%X %x') for i in dates1]
pyplot.ylim(50,1000)
pyplot.xticks(rotation=15)
pyplot.plot(dates, humidity)
pyplot.savefig("test.png", dpi=72)
pyplot.savefig("test.pdf")
print ("Done")
print(newest)
time.sleep(5)
plotloop()
我的图表:
Excel中的CSV屏幕截图:
答案 0 :(得分:0)
最简单的方法可能是直接设置日期格式。为此,您需要在plot命令之前添加以下内容:
pyplot.gca().xaxis.set_major_formatter(matplotlib.dates.DateFormatter("%x %H:%M"))
您还需要从
稍微更改导入from matplotlib import pyplot, dates
到
from matplotlib import pyplot
import matplotlib.dates
这是必要的,因为虽然您已经从matplotlib导入日期,但您也可以稍后定义一个名为日期的列表。
因此,作为解释,函数gca()
使您可以访问Axes对象。有了这个,你可以做很多事情。见http://matplotlib.org/2.0.0/api/axes_api.html#matplotlib.axes.Axes