создайте таблицу plotly с заголовками строк, а входные значения представляют собой список строк

#plotly #plotly-python

Вопрос:

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

Я пытаюсь создать таблицу, подобную приведенной выше, в графическом виде с заголовками столбцов и строк. У меня есть заголовки в виде списков x = [a,b,c,d] y =[красный,белый,синий], а значения-вложенные списки строк z=[[5,8,9,5],[4,4,5,2],[2,5,3,1]].

Код, который у меня есть для таблицы he:

 fig_table = go.Table(
        header=dict(
            values=x,
            font=dict(size=10),
            align="left"
        ),
        cells=dict(
            values=z,
            align = "left")
    )
 

Свойство values ожидает список столбцов вместо строк, поэтому моя таблица получается перевернутой. Есть ли способ ввести список строк в значения? Кроме того, как бы я добавил заголовки строк? Спасибо

Ответ №1:

  • структура заголовка представляет собой 1D-список, структура значений представляет собой 2D-список, который представляет собой транспонирование 2D-списка, который вы найдете в pandas
  • закодировали оба примера построения из списков и фрейма данных

создание из списков

 go.Figure(go.Table(
        header=dict(
            values=[""]   list("abcd"),
            font=dict(size=10),
            align="left"
        ),
        cells=dict(
            values=[["red","white","blue"],[5,3,2],[8,4,5],[9,5,3],[5,2,1]],
            align = "left")
    ))
 

создание из фрейма данных

 df = pd.DataFrame(
    index=["red", "white", "blue"],
    columns=list("abcd"),
    data=np.array([[5, 3, 2], [8, 4, 5], [9, 5, 3], [5, 2, 1]]).T,
)

go.Figure(go.Table(header={"values":df.reset_index().columns, "font":{"size":10}, "align":"left"},
                  cells={"values":df.reset_index().T, "align":"left"}))
 

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

1. У меня есть большая таблица (около 50 столбцов), я просто использовал ее в качестве примера,поэтому я искал способ создать таблицу, подобную приведенной выше, сохраняя входные данные x, y и z в том же формате, как показано на рисунке, и устанавливая x в качестве заголовка столбца и y в качестве заголовка строки. Для z мне нужно было бы создать функцию для переноса ее в список столбцов?