У меня большой набор данных о погоде с поминутными данными о температуре. Я хотел бы представить это в формате тепловой карты как время против даты против температуры вроде этого: Данные о температуре за пару лет
Я сделал это вручную в numpy для пока я не получил столько данных, что компьютер упал. Итак, я ищу способ сделать такой же вид печати с использованием pandas данных и графиков.
Структура данных выглядит следующим образом:
TimeStamp AirTemp Pressure RelHumidty HeatIndex Battery
0 1509159720 78.26 982.9 48.0 78.2600 3.11
1 1509159780 78.08 982.9 48.0 78.0800 3.11
2 1509159840 78.08 982.9 48.0 78.0800 3.11
3 1509159900 78.26 982.8 53.0 78.2600 3.11
4 1509159960 78.62 982.8 48.0 78.6200 3.11
5 1509160020 79.16 982.8 54.0 79.1600 3.11
6 1509160080 80.06 982.9 76.0 83.8179 3.12
7 1509160140 81.50 982.8 50.0 82.2393 3.12
8 1509160200 81.68 982.8 47.0 82.0224 3.12
... ... ... ... ... ... ...
И фрагмент кода I ' Сейчас я работаю с этим:
#create axis arrays
dayArray = np.linspace(0,1439,1440,dtype=int)
dateArray = airEndTimePlot - np.arange((airEndTimePlot-airStartTimePlot).days) * timedelta(days=1)
#load data from database
sql_Query = pd.read_sql_query('select * from AirObs', conn)
df = pd.DataFrame(sql_Query, columns=['TimeStamp','AirTemp','Pressure','RelHumidity','HeatIndex','Battery'])
# magic happens #
tempArray = df.AirTemp.<something>
fig = make_subplots(rows=8, cols=1)
fig.append_trace(go.Heatmap(
z=tempArray,
x=dateArray,
y=dayArray,
colorscale='Viridis'), row=1, col=1)
fig.show()