首页 > 解决方案 > 创建带有行标题的绘图表,输入值是行列表

问题描述

在此处输入图像描述

我正在尝试用列标题和行标题绘制一个像上面那样的表格。我将标题作为列表 x = [a,b,c,d] y =[red,wite,blue] 并将值作为行的嵌套列表 z=[[5,8,9,5],[4, 4,5,2],[2,5,3,1]]。

我为他的表提供的代码:

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

values 属性需要一个列列表而不是行列表,所以我的表是倒置的。有没有办法将行列表输入到值中?另外我将如何添加行标题?谢谢

标签: plotlyplotly-python

解决方案


  • 标头的结构是一维列表,的结构是二维列表,它是您可以在熊猫中找到的二维列表的转置
  • 编写了从列表和数据帧构造的两个示例

从列表创建

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"}))

推荐阅读