Я пытаюсь построить график рассеяния в автономном режиме с графиком, который будет отображаться в моем браузере.Я хотел бы иметь раскрывающееся меню, которое позволит мне фильтровать мои данные по третьему столбцу из моего фрейма данных, который связан с моими двумя столбцами, выбранными для моих значений x и y на диаграмме рассеяния.
У меня 2 проблемы.
Во-первых, у меня возникли проблемы с поиском способа построения списка значений в раскрывающемся списке по уникальным значениям в 3-м столбце, по которому я хотел бы отфильтровать свои данные.Например, я пытаюсь построить имена в раскрывающемся списке из списка, назначенного переменной, например:
labelnames = list(df.name.unique())
Во-вторых, у меня возникают проблемы с выяснением, как обновить разброс в зависимости от того, какое значениебудет выбран из выпадающего меню.
Любая помощь будет принята с благодарностью!
Вот пример кода, с которым я работаю до сих пор:
import plotly.plotly as py
from plotly.graph_objs import *
import plotly.offline
import pandas as pd
my_dict = {
'name': ["a", "a", "c", "c", "c", "f", "g"],
'age': [20, 27, 35, 55, 18, 21, 35],
'score': [33, 11, 9, 12, 44, 15, 25]
}
df = pd.DataFrame(my_dict)
trace1 = Scatter(
y=df['age'],
x=df['score'],
name='Data Set 1',
mode='markers',
)
labelnames = list(df.name.unique())
data = Data([trace1])
layout = Layout(
updatemenus=list([
dict(
x=-0.05,
y=1,
buttons=list([
dict(
args=[],
options=[{'label': i, 'value': i} for i in labelnames],
value='',
label='Scores',
method='restyle'
)
]),
yanchor='top'
)
]),
)
fig = Figure(data=data, layout=layout)
plotly.offline.plot(fig, filename='name.html')