Недопустимое значение типа 'datetime.date' получено для свойства 'name' фрейма и Полученное значение: datetime.date(2022, 8, 15)
Я пытаюсь построить анимированный график рассеяния с помощью plotly. Использую кадр анимации по дате, но получаю ошибку Invalid value of type 'datetime.date'.
fig = px.scatter(df1,x=df1['MeterReading_DateTime'], y=df1['ACT_IMP_TOT'], color=df1['MeterReading_DateTime'],animation_group=df1['MeterReading_DateTime'],animation_frame=df1['MeterReading_DateTime'],size=df1['ACT_IMP_TOT'],size_max=55,title='')
Здесь я предоставляю кадр данных.
- ошибка именно та, о которой говорится.... для
color
,animation_group
иanimation_frame
дата должна быть выражена как строка - смоделировать данные, подразумеваемые вашим кодом и изображением данных
- создал дополнительный столбец, чтобы иметь возможность использовать код по своему усмотрению
- исправил несколько других проблем, чтобы оси менялись при переключении между кадрами
import plotly.express as px
import pandas as pd
import numpy as np
df1 = pd.DataFrame(
{"MeterReading_DateTime": pd.date_range("15-aug-2022", "today", freq="D")}
).assign(ACT_IMP_TOT=lambda d: np.random.uniform(9, 15, len(d)))
# column uses for color / animation needs to be a string
df1["ReadingDate_str"] = df1["MeterReading_DateTime"].dt.strftime("%Y-%m-%d")
# use data as str for color and animation
fig = px.scatter(
df1,
x=df1["MeterReading_DateTime"],
y=df1["ACT_IMP_TOT"],
color=df1["ReadingDate_str"],
animation_group=df1["ReadingDate_str"],
animation_frame=df1["ReadingDate_str"],
size=df1["ACT_IMP_TOT"],
size_max=55,
title="",
)
# need to define xaxis for each frame
for fr in fig.frames:
fr.update(
layout={
"xaxis": {
"range": [fr.data[0].x[0], fr.data[0].x[0]],
"tickformat": "%d-%b",
}
}
)
# yaxis needs to be approriate range across all frames
fig.update_layout(
yaxis_range=[df1["ACT_IMP_TOT"].min(), df1["ACT_IMP_TOT"].max()],
xaxis_tickformat="%d-%b",
showlegend=False,
)