go.Histogram2dContour от графического отображения другого типа диаграммы - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь отобразить двухмерную диаграмму плотности в приложении для колб, используя функцию графика 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

Сообщения об ошибках не отображаются.

1 Ответ

0 голосов
/ 17 июля 2019

Неважно, я нашел решение.Я увидел ошибку, а затем реорганизовал код в соответствии с измененной формой для входных данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...