Плотная таблица сортировки Python

#python #python-3.x #plotly

Вопрос:

У меня есть большая таблица данных в 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» перед его отображением? Или значения таблицы должны быть правильно отсортированы перед построением таблицы?

Ответ №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,
        }
    ]
)
 

Комментарии:

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

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