Графический обмен данными оси с помощью кнопок

Я пытаюсь предоставить кнопку для переключения между осями для 2D-гистограммы с помощью updatemenu as

Код драйвера:

self._chartFigure.update_layout(
            updatemenus=[
                super().reverse_colorScale(self),
                super().reverse_axis(self,
                                     x=self._chartTypeObject.__getitem__("y"),
                                     y=self._chartTypeObject.__getitem__("x"))
            ])

Я пробовал этот код: но он ничего не отображает после щелчка, поэтому не уверен, возможно ли это или нет

def reverse_axis(self, x, y):
    return dict(
        buttons=list([
            dict(args=[{"x": y, "y": x, "xbin.size": 0.2, "xbin.start": 0,"ybins.size": 1, "ybins.start": 0}],
                 label="Switch X to Y",
                 method="restyle"
                 ),
            dict(args=[{"x": x, "y": y,"xbin.size": 1, "xbin.start": 0, "ybins.size": 0.2, "ybins.start": 0}],
                 label="Switch Y to X",
                 method="update"
                 )
        ]),
        type="dropdown",
        direction="right",
        showactive=True,
        x=0.13,
        y=1.065,
        xanchor="center",
        yanchor="bottom"
    )

Перед нажатием:

введите здесь описание изображения

После щелчка:

введите здесь описание изображения


person joshua    schedule 28.04.2020    source источник


Ответы (1)


вот ответ, который работает, если кто-то еще его ищет

def reverse_axis(self, x, y):
    return dict(
        buttons=list([
            dict(args=[{"x": [list(y)], "y": [list(x)], "xbin.size": 0.2, "xbin.start": 0,"ybins.size": 1, "ybins.start": 0}],
                 label="Switch X to Y",
                 method="restyle"
                 ),
            dict(args=[{"x": [list(x)], "y": [list(y)],"xbin.size": 1, "xbin.start": 0, "ybins.size": 0.2, "ybins.start": 0}],
                 label="Switch Y to X",
                 method="update"
                 )
        ]),
        type="dropdown",
        direction="right",
        showactive=True,
        x=0.13,
        y=1.065,
        xanchor="center",
        yanchor="bottom"
    )
person joshua    schedule 02.05.2020