【问题标题】:How to plot data from csv for specific date and time using matplotlib?如何使用matplotlib从csv中绘制特定日期和时间的数据?
【发布时间】:2017-02-21 04:19:57
【问题描述】:

我编写了一个 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

【问题讨论】:

    标签: python pandas matplotlib


    【解决方案1】:

    Hack 方式

    试试这个:

    import pylab as pl
    pl.xticks(rotation = 90)
    

    它将标签旋转 90 度,从而消除重叠。

    更清洁的方式

    查看 this link,它描述了如何使用 fig.autofmt_xdate(),并让 matplotlib 选择格式化日期的最佳方式。

    熊猫方式

    to_datetime()set_indexDataFrame.plot() 一起使用:

    df.Datetime=pd.to_datetime(df.Datetime)
    df.set_index('Datetime')
    df['Sensor Value'].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
    

    【讨论】:

    • 我正在尝试熊猫的方式。 “Python 3.5 不支持反引号”在“使用”上给出错误。有什么解决办法?
    • 它现在给出的错误是“未解决的使用引用”以及 to_datetime()、set_index 和 DataFrame.plot() 的相同错误。
    • 对此感到抱歉。现在,它给出了错误:无法识别的值类型:。我想我在这里遗漏了一些基本的东西,因为我真的是 python 的新手。
    • 如果您给我一个数据框样本,我只能帮助您
    • 我在原始问题中添加了数据框示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    • 2019-12-14
    • 2011-03-30
    相关资源
    最近更新 更多