Python 如何使用matplotlib从csv中绘制特定日期和时间的数据?

Python 如何使用matplotlib从csv中绘制特定日期和时间的数据?,python,pandas,matplotlib,Python,Pandas,Matplotlib,我编写了一个python程序,使用pandas从csv获取数据,并使用matplotlib绘制数据。我的代码如下,结果如下: import pandas as pd import datetime import csv import matplotlib.pyplot as plt headers = ['Sensor Value','Date','Time'] df = pd.read_csv('C:/Users\Lala Rushan\Downloads\DataLog.CSV',parse

我编写了一个python程序,使用pandas从csv获取数据,并使用matplotlib绘制数据。我的代码如下,结果如下:

import pandas as pd
import datetime
import csv
import matplotlib.pyplot as plt
headers = ['Sensor Value','Date','Time']
df = pd.read_csv('C:/Users\Lala Rushan\Downloads\DataLog.CSV',parse_dates=     {"Datetime" : [1,2]},names=headers)
#pd.to_datetime(df['Date'] + ' ' + df['Time'])
#df.apply(lambda r : pd.datetime.combine(r['Date'],r['Time']),)
print (df)

#f = plt.figure(figsize=(10, 10))
df.plot(x='Datetime',y='Sensor Value',) # figure.gca means "get current axis"
plt.title('Title here!', color='black')
plt.tight_layout()
plt._show()

现在你可以看到x轴看起来很可怕。如何绘制单个日期和时间间隔的x轴,使其看起来不相互重叠?我将日期和时间作为一列存储在数据框中

我的数据框如下所示:

                       Datetime  Sensor Value
0     2017/02/17  19:06:17.188             2
1     2017/02/17  19:06:22.360            72
2     2017/02/17  19:06:27.348            72
3     2017/02/17  19:06:32.482            72
4     2017/02/17  19:06:37.515            74
5     2017/02/17  19:06:42.580            70
                      Datetime  Sensor Value
0     2017/02/17  19:06:17.188             2
1     2017/02/17  19:06:22.360            72
2     2017/02/17  19:06:27.348            72
3     2017/02/17  19:06:32.482            72
4     2017/02/17  19:06:37.515            74
5     2017/02/17  19:06:42.580            70
黑道 试试这个:

import pylab as pl
pl.xticks(rotation = 90)
它将标签旋转90度,从而消除重叠

清洁方式 查看描述如何使用图autofmt_xdate()的代码,让matplotlib选择格式化日期的最佳方式

熊猫路 使用
DataFrame.plot()
设置索引

pandas
将为您精心绘制:

我的数据框如下所示:

                       Datetime  Sensor Value
0     2017/02/17  19:06:17.188             2
1     2017/02/17  19:06:22.360            72
2     2017/02/17  19:06:27.348            72
3     2017/02/17  19:06:32.482            72
4     2017/02/17  19:06:37.515            74
5     2017/02/17  19:06:42.580            70
                      Datetime  Sensor Value
0     2017/02/17  19:06:17.188             2
1     2017/02/17  19:06:22.360            72
2     2017/02/17  19:06:27.348            72
3     2017/02/17  19:06:32.482            72
4     2017/02/17  19:06:37.515            74
5     2017/02/17  19:06:42.580            70
黑道 试试这个:

import pylab as pl
pl.xticks(rotation = 90)
它将标签旋转90度,从而消除重叠

清洁方式 查看描述如何使用图autofmt_xdate()的代码,让matplotlib选择格式化日期的最佳方式

熊猫路 使用
DataFrame.plot()
设置索引

pandas
将为您精心绘制:

我的数据框如下所示:

                       Datetime  Sensor Value
0     2017/02/17  19:06:17.188             2
1     2017/02/17  19:06:22.360            72
2     2017/02/17  19:06:27.348            72
3     2017/02/17  19:06:32.482            72
4     2017/02/17  19:06:37.515            74
5     2017/02/17  19:06:42.580            70
                      Datetime  Sensor Value
0     2017/02/17  19:06:17.188             2
1     2017/02/17  19:06:22.360            72
2     2017/02/17  19:06:27.348            72
3     2017/02/17  19:06:32.482            72
4     2017/02/17  19:06:37.515            74
5     2017/02/17  19:06:42.580            70

我正在尝试熊猫的方式。在“使用”中给出的错误是“Python3.5不支持反引号”。这个问题的解决方案是什么?它给出的错误是“未解析的要使用的引用”,to_datetime()、set_index和DataFrame.plot()也有相同的错误。很抱歉。现在,它给出了错误:无法识别的值类型:。我想我遗漏了一些基本的东西,因为我是python的新手。我只能帮助你,如果你给我一个dataframe示例,我已经在原始问题中添加了dataframe示例。我正在尝试这种方法。在“使用”中给出的错误是“Python3.5不支持反引号”。这个问题的解决方案是什么?它给出的错误是“未解析的要使用的引用”,to_datetime()、set_index和DataFrame.plot()也有相同的错误。很抱歉。现在,它给出了错误:无法识别的值类型:。我想我遗漏了一些基本的东西,因为我是python的新手。我只能帮助你,如果你给我一个dataframe的示例,我已经在原始问题中添加了dataframe的示例。