使用plotly的go.Histogram2dContour显示不同的图表类型

2024-04-25 01:11:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图显示一个二维密度图在烧瓶应用程序使用plotly的historogram2dcontour绘图功能与下拉列表。我用basic example here绘制的等高线图。相反,我得到了一个连接的散点图。图上的点是正确的。你知道吗

我从下面的按钮创建函数的参数中删除了visible参数。我也尝试过改变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

未显示任何错误消息。你知道吗


Tags: columnsinselfdfdataplotcreatechart
1条回答
网友
1楼 · 发布于 2024-04-25 01:11:48

不管我找到什么解决办法。我看到了错误,然后对代码进行了重构,以适应输入数据的修改形式。你知道吗

相关问题 更多 >