Я зашел на сайт и скачал 24-часовое чтение для следующего:
data.Site.unique()
массив (['BX1', 'TH4', 'BT4', 'HI0', 'BL0', 'RD0'], dtype = object)
Я принял ваш код к этому моменту:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import datetime
data = pd.read_csv('/Users/xx/Downloads/LaqnData.csv')
data['ReadingDateTime'] = pd.to_datetime(data['ReadingDateTime'])
Затем я использую datetime index для вызова каждого часа в функции groupby.
data.groupby([data.index.hour, data['Site']])['Value'].mean().reset_index()`#Convert to dataframe.`
Чтобы построить график, я приковываю unstack к функции groupby и напрямую строю график.
data.groupby([data.index.hour, data['Site']])['Value'].mean().reset_index#unstack().plot()
plt.xlabel('Hour of the day')
plt.ylabel('Ozone')
plt.title('Avarage Hourly comparison')
plt.legend()`# If you want the legend to appear in default location`
Если суетиться по поводу местоположения легенды, этот пост объясняет это очень хорошо. В вашем случае
plt.legend(loc='upper center', bbox_to_anchor=(0.5, -0.15),
fancybox=True, shadow=True, ncol=6)
![enter image description here](https://i.stack.imgur.com/2izG8.png)