plotly - 创建带有行标题的绘图表,输入值是行列表
问题描述
我正在尝试用列标题和行标题绘制一个像上面那样的表格。我将标题作为列表 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 属性需要一个列列表而不是行列表,所以我的表是倒置的。有没有办法将行列表输入到值中?另外我将如何添加行标题?谢谢
解决方案
- 标头的结构是一维列表,值的结构是二维列表,它是您可以在熊猫中找到的二维列表的转置
- 编写了从列表和数据帧构造的两个示例
从列表创建
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"}))