【Python百日进阶-数据分析】Day140 - plotly表:plotly.graph_objects.Table()

一、语法

构造一个新的 Table 对象

用于查看详细数据的表格视图。数据以行和列的网格排列。大多数样式可以为列、行或单个单元格指定。表使用列主要顺序,即。网格表示为列向量的向量。

plotly.graph_objects.Table(arg=None,
                           cells=None,
                           columnorder=None,
                           columnordersrc=None,
                           columnwidth=None,
                           columnwidthsrc=None,
                           customdata=None,
                           customdatasrc=None,
                           domain=None,
                           header=None,
                           hoverinfo=None,
                           hoverinfosrc=None,
                           hoverlabel=None,
                           ids=None,
                           idssrc=None,
                           legendgrouptitle=None,
                           legendrank=None,
                           meta=None,
                           metasrc=None,
                           name=None,
                           stream=None,
                           uid=None,
                           uirevision=None,
                           visible=None,
                           **kwargs)

二、参数

  • arg - 与此构造函数或实例兼容的属性字典plotly.graph_objects.Table

  • cells -plotly.graph_objects.table.Cells具有兼容属性的实例或字典

  • columnorder – 指定数据列的呈现顺序;例如,2位置的值0意味着0数据中的列索引将呈现为第三列,因为列的索引基数为零。

  • columnordersrc – 在 Chart Studio Cloud 上为 columnorder.

  • columnwidth – 以比率表示的列的宽度。列按其指定列宽的比例填充可用宽度。

  • columnwidthsrc – 在 Chart Studio Cloud 上为 columnwidth.

  • customdata – 为每个数据分配额外的数据。这在侦听悬停、单击和选择事件时可能很有用。请注意,“分散”跟踪还会在标记 DOM 元素中附加自定义数据项

  • customdatasrc – 在 Chart Studio Cloud 上为 customdata.

  • domain –plotly.graph_objects.table.Domain具有兼容属性的实例或字典

  • header –plotly.graph_objects.table.Header具有兼容属性的实例或字典

  • hoverinfo – 确定在悬停时显示哪些跟踪信息。如果 设置none或skip,则悬停时不显示任何信息。但是,如果none设置,单击和悬停事件仍会触发。

  • hoverinfosrc – 在 Chart Studio Cloud 上为 hoverinfo.

  • hoverlabel –plotly.graph_objects.table.Hoverlabel具有兼容属性的实例或字典

  • ids – 为每个数据分配 id 标签。这些 id 用于动画期间数据点的对象恒定性。应该是字符串数组,而不是数字或任何其他类型。

  • idssrc – 在 Chart Studio Cloud 上为 ids.

  • legendgrouptitle –plotly.graph_objects.table.Legendgrouptitle 具有兼容属性的实例或字典

  • legendrank – 设置此跟踪的图例等级。排名较小的项目和组显示在顶部/左侧,而它们位于底部/右侧。默认的 legendrank 为 1000,因此您可以使用 rank 小于 1000 将某些项目放置在所有未排序的项目之前,而将 rank 大于 1000 放置在所有未排序的项目之后。reversed `legend.traceorder

  • meta - 分配与此跟踪相关的额外元信息,可用于各种文本属性。trace name、graph、axis和colorbar title.text、annotation text rangeselector、 text等属性都updatemenues支持。要访问 同一跟踪中属性中的跟踪值,只需使用 where是相关 项目的索引或键。要访问布局属性中的跟踪,请使用where 是索引或 的键,并且是跟踪索引。sliders labelmetameta%{meta[i]}imetameta%{data[n[.meta[i]}imetan

  • metasrc – 在 Chart Studio Cloud 上为 meta.

  • name – 设置跟踪名称。跟踪名称显示为图例项并悬停。

  • stream -plotly.graph_objects.table.Stream具有兼容属性的实例或字典

  • uid – 为该跟踪分配一个 id,使用它在动画和过渡期间提供跟踪之间的对象恒定性。

  • uirevision - 控制对跟踪的一些用户驱动更改的持久性:constraintrange在parcoords跟踪中,以及一些修改,例如 和。默认为. 请注意,其他用户驱动的跟踪属性更改由属性控制:由 控制, 由控制 ,并且 (可通过 访问)由 控制。跟踪更改由 跟踪,如果没有提供,则仅回退到跟踪索引。因此,如果您的应用程序可以在数组末尾添加/删除跟踪,这样相同的跟踪具有不同的索引,如果您给每个跟踪一个 editable: truenamecolorbar.titlelayout.uirevisionlayouttrace.visiblelayout.legend.uirevisionselectedpointslayout.selectionrevisioncolorbar.(x|y)config: {editable: true}layout.editrevisionuiduiddatauid当它移动时,它会一直伴随着它。

  • visible – 确定此跟踪是否可见。如果“legendonly”,则不绘制迹线,但可以显示为图例项(前提是图例本身可见)。

三、返回值

Table

四、实例

go.Table提供一个 Table 对象用于详细的数据查看。数据以行和列的网格排列。大多数样式可以为标题、列、行或单个单元格指定。表使用列优先顺序,即。网格表示为列向量的向量。

请注意,Dash提供了不同类型的DataTable。

4.1 基本表

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()

在这里插入图片描述

4.2 样式表

import plotly.graph_objects as go

fig = go.Figure(data=[go.Table(
    header=dict(values=['A Scores', 'B Scores'],
                line_color='darkslategray',
                fill_color='lightskyblue',
                align='left'),
    cells=dict(values=[[100, 90, 80, 90], # 1st column
                       [95, 85, 75, 95]], # 2nd column
               line_color='darkslategray',
               fill_color='lightcyan',
               align='left'))
])

fig.update_layout(width=500, height=300)
fig.show()

在这里插入图片描述

4.3 使用 Pandas 数据框

import plotly.graph_objects as go
import pandas as pd
# 'https://raw.githubusercontent.com/plotly/datasets/master/2014_usa_states.csv'
df = pd.read_csv('f:/2014_usa_states.csv')
print(df)
'''
    Rank                 State Postal  Population
0      1               Alabama     AL   4849377.0
1      2                Alaska     AK    736732.0
2      3               Arizona     AZ   6731484.0
3      4              Arkansas     AR   2966369.0
4      5            California     CA  38802500.0
5      6              Colorado     CO   5355866.0
6      7           Connecticut     CT   3596677.0
7      8              Delaware     DE    935614.0
8      9  District of Columbia     DC    658893.0
9     10               Florida     FL  19893297.0
10    11               Georgia     GA  10097343.0
11    12                Hawaii     HI   1419561.0
12    13                 Idaho     ID   1634464.0
13    14              Illinois     IL  12880580.0
14    15               Indiana     IN   6596855.0
15    16                  Iowa     IA   3107126.0
16    17                Kansas     KS   2904021.0
17    18              Kentucky     KY   4413457.0
18    19             Louisiana     LA   4649676.0
19    20                 Maine     ME   1330089.0
20    21              Maryland     MD   5976407.0
21    22         Massachusetts     MA   6745408.0
22    23              Michigan     MI   9909877.0
23    24             Minnesota     MN   5457173.0
24    25           Mississippi     MS   2994079.0
25    26              Missouri     MO   6063589.0
26    27               Montana     MT   1023579.0
27    28              Nebraska     NE   1881503.0
28    29                Nevada     NV   2839098.0
29    30         New Hampshire     NH   1326813.0
30    31            New Jersey     NJ   8938175.0
31    32            New Mexico     NM   2085572.0
32    33              New York     NY  19746227.0
33    34        North Carolina     NC   9943964.0
34    35          North Dakota     ND    739482.0
35    36                  Ohio     OH  11594163.0
36    37              Oklahoma     OK   3878051.0
37    38                Oregon     OR   3970239.0
38    39          Pennsylvania     PA  12787209.0
39    40           Puerto Rico     PR   3548397.0
40    41          Rhode Island     RI   1055173.0
41    42        South Carolina     SC   4832482.0
42    43          South Dakota     SD    853175.0
43    44             Tennessee     TN   6549352.0
44    45                 Texas     TX  26956958.0
45    46                  Utah     UT   2942902.0
46    47               Vermont     VT    626562.0
47    48              Virginia     VA   8326289.0
48    49            Washington     WA   7061530.0
49    50         West Virginia     WV   1850326.0
50    51             Wisconsin     WI   5757564.0
51    52               Wyoming     WY    584153.0
'''
fig = go.Figure(data=[go.Table(
    header=dict(values=list(df.columns),
                fill_color='paleturquoise',
                align='left'),
    cells=dict(values=[df.Rank, df.State, df.Postal, df.Population],
               fill_color='lavender',
               align='left'))
])

fig.show()

在这里插入图片描述

4.4 Dash中的表

import dash
from dash import html, dcc, dash_table
from dash.dependencies import Input, Output
import pandas as pd

data_url = 'https://raw.githubusercontent.com/plotly/datasets/master/2014_usa_states.csv'
df = pd.read_csv('f:/2014_usa_states.csv')
'''
    Rank                 State Postal  Population
0      1               Alabama     AL   4849377.0
1      2                Alaska     AK    736732.0
2      3               Arizona     AZ   6731484.0
3      4              Arkansas     AR   2966369.0
4      5            California     CA  38802500.0
5      6              Colorado     CO   5355866.0
6      7           Connecticut     CT   3596677.0
7      8              Delaware     DE    935614.0
8      9  District of Columbia     DC    658893.0
9     10               Florida     FL  19893297.0
10    11               Georgia     GA  10097343.0
11    12                Hawaii     HI   1419561.0
12    13                 Idaho     ID   1634464.0
13    14              Illinois     IL  12880580.0
14    15               Indiana     IN   6596855.0
15    16                  Iowa     IA   3107126.0
16    17                Kansas     KS   2904021.0
17    18              Kentucky     KY   4413457.0
18    19             Louisiana     LA   4649676.0
19    20                 Maine     ME   1330089.0
20    21              Maryland     MD   5976407.0
21    22         Massachusetts     MA   6745408.0
22    23              Michigan     MI   9909877.0
23    24             Minnesota     MN   5457173.0
24    25           Mississippi     MS   2994079.0
25    26              Missouri     MO   6063589.0
26    27               Montana     MT   1023579.0
27    28              Nebraska     NE   1881503.0
28    29                Nevada     NV   2839098.0
29    30         New Hampshire     NH   1326813.0
30    31            New Jersey     NJ   8938175.0
31    32            New Mexico     NM   2085572.0
32    33              New York     NY  19746227.0
33    34        North Carolina     NC   9943964.0
34    35          North Dakota     ND    739482.0
35    36                  Ohio     OH  11594163.0
36    37              Oklahoma     OK   3878051.0
37    38                Oregon     OR   3970239.0
38    39          Pennsylvania     PA  12787209.0
39    40           Puerto Rico     PR   3548397.0
40    41          Rhode Island     RI   1055173.0
41    42        South Carolina     SC   4832482.0
42    43          South Dakota     SD    853175.0
43    44             Tennessee     TN   6549352.0
44    45                 Texas     TX  26956958.0
45    46                  Utah     UT   2942902.0
46    47               Vermont     VT    626562.0
47    48              Virginia     VA   8326289.0
48    49            Washington     WA   7061530.0
49    50         West Virginia     WV   1850326.0
50    51             Wisconsin     WI   5757564.0
51    52               Wyoming     WY    584153.0
'''
app = dash.Dash(__name__)

app.layout = html.Div([
    dash_table.DataTable(
        id='table',
        columns=[{"name": i, "id": i}
                 for i in df.columns],
        data=df.to_dict('records'),
        style_cell=dict(textAlign='left'),
        style_header=dict(backgroundColor="paleturquoise"),
        style_data=dict(backgroundColor="lavender")
    )
])

app.run_server(debug=True)

在这里插入图片描述

4.5 更改行和列大小

import plotly.graph_objects as go

values = [['Salaries', 'Office', 'Merchandise', 'Legal', '<b>TOTAL<br>EXPENSES</b>'], #1st col
  ["Lorem ipsum dolor sit amet, tollit discere inermis pri ut. Eos ea iusto timeam, an prima laboramus vim. Id usu aeterno adversarium, summo mollis timeam vel ad",
  "Lorem ipsum dolor sit amet, tollit discere inermis pri ut. Eos ea iusto timeam, an prima laboramus vim. Id usu aeterno adversarium, summo mollis timeam vel ad",
  "Lorem ipsum dolor sit amet, tollit discere inermis pri ut. Eos ea iusto timeam, an prima laboramus vim. Id usu aeterno adversarium, summo mollis timeam vel ad",
  "Lorem ipsum dolor sit amet, tollit discere inermis pri ut. Eos ea iusto timeam, an prima laboramus vim. Id usu aeterno adversarium, summo mollis timeam vel ad",
  "Lorem ipsum dolor sit amet, tollit discere inermis pri ut. Eos ea iusto timeam, an prima laboramus vim. Id usu aeterno adversarium, summo mollis timeam vel ad"]]


fig = go.Figure(data=[go.Table(
  columnorder = [1,2],
  columnwidth = [80,400],
  header = dict(
    values = [['<b>EXPENSES</b><br>as of July 2017'],
                  ['<b>DESCRIPTION</b>']],
    line_color='darkslategray',
    fill_color='royalblue',
    align=['left','center'],
    font=dict(color='white', size=12),
    height=40
  ),
  cells=dict(
    values=values,
    line_color='darkslategray',
    fill=dict(color=['paleturquoise', 'white']),
    align=['left', 'center'],
    font_size=12,
    height=30)
    )
])
fig.show()

在这里插入图片描述

4.6 交替行颜色

import plotly.graph_objects as go

headerColor = 'grey'
rowEvenColor = 'lightgrey'
rowOddColor = 'white'

fig = go.Figure(data=[go.Table(
  header=dict(
    values=['<b>EXPENSES</b>','<b>Q1</b>','<b>Q2</b>','<b>Q3</b>','<b>Q4</b>'],
    line_color='darkslategray',
    fill_color=headerColor,
    align=['left','center'],
    font=dict(color='white', size=12)
  ),
  cells=dict(
    values=[
      ['Salaries', 'Office', 'Merchandise', 'Legal', '<b>TOTAL</b>'],
      [1200000, 20000, 80000, 2000, 12120000],
      [1300000, 20000, 70000, 2000, 130902000],
      [1300000, 20000, 120000, 2000, 131222000],
      [1400000, 20000, 90000, 2000, 14102000]],
    line_color='darkslategray',
    # 2-D list of colors for alternating rows
    fill_color = [[rowOddColor,rowEvenColor,rowOddColor, rowEvenColor,rowOddColor]*5],
    align = ['left', 'center'],
    font = dict(color = 'darkslategray', size = 11)
    ))
])

fig.show()

在这里插入图片描述

4.7 基于变量的行颜色

import plotly.graph_objects as go

import pandas as pd

colors = ['rgb(239, 243, 255)', 'rgb(189, 215, 231)', 'rgb(107, 174, 214)',
          'rgb(49, 130, 189)', 'rgb(8, 81, 156)']
data = {'Year' : [2010, 2011, 2012, 2013, 2014], 'Color' : colors}
df = pd.DataFrame(data)

fig = go.Figure(data=[go.Table(
  header=dict(
    values=["Color", "<b>YEAR</b>"],
    line_color='white', fill_color='white',
    align='center', font=dict(color='black', size=12)
  ),
  cells=dict(
    values=[df.Color, df.Year],
    line_color=[df.Color], fill_color=[df.Color],
    align='center', font=dict(color='black', size=11)
  ))
])

fig.show()

在这里插入图片描述

4.8 基于变量的单元格颜色

import plotly.graph_objects as go
from plotly.colors import n_colors
import numpy as np
np.random.seed(1)

colors = n_colors('rgb(255, 200, 200)', 'rgb(200, 0, 0)', 9, colortype='rgb')
a = np.random.randint(low=0, high=9, size=10)
b = np.random.randint(low=0, high=9, size=10)
c = np.random.randint(low=0, high=9, size=10)

fig = go.Figure(data=[go.Table(
  header=dict(
    values=['<b>Column A</b>', '<b>Column B</b>', '<b>Column C</b>'],
    line_color='white', fill_color='white',
    align='center',font=dict(color='black', size=12)
  ),
  cells=dict(
    values=[a, b, c],
    line_color=[np.array(colors)[a],np.array(colors)[b], np.array(colors)[c]],
    fill_color=[np.array(colors)[a],np.array(colors)[b], np.array(colors)[c]],
    align='center', font=dict(color='white', size=11)
    ))
])

fig.show()

在这里插入图片描述

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岳涛@心馨电脑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值