На диаграмме не отображается шкала времени - PullRequest
1 голос
/ 17 июня 2020

Итак, у меня проблема в том, что на диаграмме, которую я создаю с помощью Python и Pandas, не отображается моя временная шкала

Как видите, это не так. показать время, когда данные были записаны в базу данных. Моя база данных выглядит так:

id    hum   temp    time      date 
 1    74     23   15:35:22  2020-06-17
 2    81     23   15:37:28  2020-06-17

И это мой код:

import matplotlib.pyplot as plt
import pandas as pd
from datetime import date, datetime
from pandas import DataFrame

datum = str(date.today())

con = sqlite3.connect("/home/pi/test2.db")
sql = "SELECT * from data4 WHERE date in (?)"

df3 = pd.read_sql_query(sql,con, params=[datum])

def daily_hum():

    df3.plot(x = 'time', y= 'hum', kind='line', color='blue')
    plt.ylabel('temperature in C°')
    plt.xlabel('time')
    plt.savefig('/home/pi/flask/static/daily_hum.svg')
daily_hum()

Итак, как мне показать временную шкалу?

1 Ответ

1 голос
/ 17 июня 2020

Вы также можете попробовать:

# group datapoint by hours of day
df3.groupby([df3.time.dt.hour]).hum.mean().plot()

или

# group datapoint by minutes of day
df3.groupby([df3.time.dt.minute]).hum.mean().plot()

В этих примерах столбец df3.time должен иметь тип данных datetime.


Преобразование строки типа данных в datetime64

Если ваши столбцы df3.time и df3.date являются строками.

# date and time to one column called datetime. converting to dtype datetime
df3['datetime'] = pd.to_datetime((df3.date + ' ' + df3.time))

df3.groupby([df3.datetime.dt.hour]).hum.mean().plot()

Построение всех точек данных

Если вы этого не сделаете Если вы хотите сгруппировать данные (df3.hum) по datetimepoints (одна точка на каждый час дня), вы можете сделать следующее.

# date and time to one column called datetime. converting to dtype datetime 
df3['datetime'] = pd.to_datetime((df3.date + ' ' + df3.time))

df3.groupby([df3.datetime]).hum.mean().plot()

Тогда вы можете подумать о другом графике, например scatterplot из библиотеки pandas.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...