Я сделал простой линейный график с помощью matplotlib, и теперь я хочу сделать его с помощью графика, чтобы я мог добавить ползунок, чтобы я мог перебирать годы, а не статический график, это было бы более интерактивно.
Вот мой код.
df_summed = df_pre_2003.groupby(['year']) ['nAllNeonic'].sum().reset_index()
q=df_summed.year
r=df_summed.nAllNeonic
data = [dict(
visible = False,
#line=dict(color='#00CED1', width=6),
#name = '? = '+str(step),
x = q,
y = r
)]
print(data)
#data[0] seems off but not getting an index out of range error so leaving for now
data[0]['visible'] = True
steps=[]
for i in range (0,11,len(q)):
steps.append(q)
step=dict(
method = 'restyle',
args = ['visible', [False] * len(data)],
)
step['args'][1][i] = True # Toggle i'th trace to "visible"
steps.append(step)
sliders=[dict(
active = 11,
currentvalue = {"prefix": "Year: "},
#pad = {"t": 50},
steps = steps
)]
layout = dict(sliders=sliders)
fig = dict(data=data, layout=layout)
plot(fig, filename='test slider')
Когда я запускаю его, я получаю эту ошибку:
Получены недопустимые элементы для свойства 'steps' layout.slider
Invalid elements include:
[0 1991
1 1992
2 1993
3 1994
4 1995
5 1996
6 1997
7 1998
8 1999
9 2000
10 2001
11 2002
Name: year, dtype: int64]
Свойство steps представляет собой кортеж экземпляров Step, который может быть указан как: - список или кортеж экземпляров plotly.graph_objs.layout.slider.Step - список или кортеж dictsсвойств строки / значения, которые будут переданы конструктору Step. Поддерживаемые свойства dict: args, execute, label и т. д.
Я не понимаю, почему он говорит мне, что это именно годыхочу пройти через слайдер.Когда я печатаю данные, это дает мне (что правильно):
[{'visible': False, 'x': 0 1991
1 1992
2 1993
3 1994
4 1995
5 1996
6 1997
7 1998
8 1999
9 2000
10 2001
11 2002
Name: year, dtype: int64, 'y': 0 0.0
1 0.0
2 0.0
3 11207.2
4 82134.0
5 101002.5
6 185898.7
7 166324.4
8 140227.8
9 133949.2
10 143690.4
11 168746.2
Name: nAllNeonic, dtype: float64}]
Когда я печатаю шаги, это дает мне это:
[0 1991
1 1992
2 1993
3 1994
4 1995
5 1996
6 1997
7 1998
8 1999
9 2000
10 2001
11 2002
Name: year, dtype: int64, {'method': 'restyle', 'args': ['visible', [True]]}]
Кажется, что это должно работать, но яЯ получаю эту ошибку.Любое понимание было бы здорово.Спасибо!Кроме того, в качестве примечания я следую этому примеру.https://plot.ly/python/sliders/