Сюжетная таблица сортировки Python

avatar
dsugasa
1 июля 2021 в 16:31
850
1
0

У меня есть большая таблица данных в Plotly, которую я создал, и я хочу отсортировать ее по одному из столбцов после построения таблицы. Я не нашел никакой документации по этому поводу. Используя простой пример:

import plotly.graph_objects as go

fig = go.Figure(data=[go.Table(header=dict(values=['A Scores', 'B Scores']),
             cells=dict(values=[[100, 90, 80, 90], [95, 85, 75, 95]]))
                 ])
fig.show()

Можно ли сократить результирующий объект go.Table или объект go.Figure по столбцу "B Scores" перед его отображением? Или значения таблицы должны быть правильно отсортированы перед построением таблицы?

Источник

Ответы (1)

avatar
Rob Raymond
1 июля 2021 в 19:34
1

Если требуется, чтобы он был интерактивным, вы можете использовать updatemenus, где данные заменяются отсортированными данными.

import plotly.graph_objects as go

v = [[100, 90, 80, 90], [95, 85, 75, 95]]
df = pd.DataFrame(v).T.sort_values(0).T

fig = go.Figure(
    data=[go.Table(header=dict(values=["A Scores", "B Scores"]), cells={"values": df.values})]
)
fig.update_layout(
    updatemenus=[
        {
            "buttons": [
                {
                    "method": "restyle",
                    "label": b["l"],
                    "args": [{"cells": {"values": df.T.sort_values(b["c"]).T.values}},[0],],
                }
                for b in [{"l": "A Scores", "c": 0}, {"l": "B Scores", "c": 1}]
            ],
            "direction": "down",
            "y": 1,
        }
    ]
)
dsugasa
1 июля 2021 в 22:27
0

привет Роб, может быть я делаю что-то не так, но выпадающее меню ничего не меняет. есть идеи?

dsugasa
1 июля 2021 в 22:49
0

в любом случае, создавая DataFrame. транспонирование, сортировка и транспонирование по-прежнему решают мою проблему для статической таблицы. Приму. Спасибо