Я пытаюсь отобразить двухмерную диаграмму плотности в приложении для колб, используя функцию графика Histogram2dContour plotly с раскрывающимся списком. Контурная диаграмма, которую я сделал, используя базовый пример здесь . Вместо этого я получаю подключенную диаграмму рассеяния. Точки на графике верны.
Я удалил видимый аргумент из аргументов в функции создания кнопки ниже. Я также попытался изменить аргументы в функции plots, но не повезло,
def kde_chart(self, chart_type, data_columns_list, df):
'''
Creates 2d kde denisty plot with pair combinations of columns from dataframes that can be
selected from a dropdown within the plotly visualization.
:param chart_type: string KDE
:param data_columns_list: data columns from dataframe in database
:param df: dataframe used in database
:return:
'''
if chart_type == 'KDE':
# create pairs of columns with combinations
kde_columns = [column for column in data_columns_list if df[column].dtype == 'float']
kde_columns_combinations = combinations(kde_columns, 2)
kde_columns = [pair for pair in kde_columns_combinations]
# create traces
traces = [self._kde_chart_maker(pair, df) for pair in kde_columns]
# create updatemenus
updatemenus = list([dict(
active=-1,
buttons=[self._kde_updatemenu_button_maker(pair, traces[i])
for i, pair in enumerate(kde_columns)])])
# create plot
kde_plot = dict(data=[traces],
layout=dict(
title='KDE plot',
showlegend=False,
autosize=False,
width=800,
height=550,
updatemenus=updatemenus,
hovermode='closest'
)
)
graphJSON = json.dumps(kde_plot, cls=plotly.utils.PlotlyJSONEncoder)
return graphJSON
def _kde_chart_maker(self, data_column_pair, df):
# create contours
trace = go.Histogram2dContour(
x=df[data_column_pair[0]],
y=df[data_column_pair[1]],
#name='density',
ncontours=20,
colorscale='Hot',
reversescale=True,
showscale=True
)
return trace
def _kde_updatemenu_button_maker(self, kde_pair, trace_selected):
button = dict(label=kde_pair[0] + '/' + kde_pair[1],
method='update',
args=[dict(
x=[trace_selected['x']],
y=[trace_selected['y']],
title=kde_pair[0] + '/' + kde_pair[1])])
return button
Сообщения об ошибках не отображаются.