📜  如何在Python中使用 Plotly 创建表格?(1)

📅  最后修改于: 2023-12-03 15:24:34.292000             🧑  作者: Mango

如何在 Python 中使用 Plotly 创建表格

介绍

Plotly 是一款基于 Python 的数据可视化工具,其支持多种绘图类型,包括折线图、散点图、柱状图、饼图等等,还支持创建交互式的可视化图表,可用于 Web、Notebook 和 Dash 等应用。本教程将介绍如何在 Python 中使用 Plotly 创建表格。

准备工作

在使用 Plotly 之前,请确保已经安装了 Plotly 库。可以在终端或者命令行中通过以下命令进行安装:

pip install plotly
创建表格

Plotly 中使用 Table 函数来创建表格。下面是一个基本的表格创建示例:

import plotly.graph_objects as go

header = dict(values=['A', 'B', 'C', 'D'],
              fill_color='paleturquoise', align='center')
cells = dict(values=[[1, 2, 3, 4],
                      [5, 6, 7, 8],
                      [9, 10, 11, 12],
                      [13, 14, 15, 16]],
             fill_color='lavender', align='center')
table = go.Table(header=header, cells=cells)
fig = go.Figure(data=[table])
fig.show()

运行代码,即可看到一个简单的表格。具体说明:

  1. 首先导入 plotly.graph_objects 模块。
  2. 使用 dict 定义表头,这里提供了 4 个表头,都为大写字母,并定义了填充颜色和对其方式;
  3. 使用 dict 定义数据,这里提供了 4 行 4 列的随机数据,同样定义了填充颜色和对其方式;
  4. 使用 go.Table 函数生成表格;
  5. 使用 go.Figure 函数将表格数据传入;
  6. 使用 show()方法展示出来。
自定义表格

上面的代码创建的表格只是简单的数据展示,没有什么特色。下面将介绍如何创建一个带有特色的表格。假设我们有一份学生信息表,其数据如下:

| 学号 | 姓名 | 年龄 | 成绩 | |:----:|:----:|:----:|:----:| | 001 | 张三 | 18 | 85 | | 002 | 李四 | 19 | 92 | | 003 | 王五 | 20 | 89 | | 004 | 赵六 | 18 | 90 |

我们要创建一个表格,将学生信息展示出来,并且让表格看起来更加美观。可以按照下面的步骤进行操作:

  1. 定义表头,将其颜色设置为深灰色,并且使用白色字体;
  2. 定义数据,设置奇数行和偶数行背景颜色分别为白色和米黄色,并且字体颜色为深灰色;
  3. 设置样式,包括表格边框、列宽、字体大小等;
  4. 调整布局,使表格居中显示。

以下是实现上述需求的代码示例:

import plotly.graph_objects as go
import plotly.io as pio
import pandas as pd

# 定义数据
data = pd.DataFrame({'学号': ['001', '002', '003', '004'],
                     '姓名': ['张三', '李四', '王五', '赵六'],
                     '年龄': [18, 19, 20, 18],
                     '成绩': [85, 92, 89, 90]})

# 定义表头
header = dict(values=['<b>'+str(i)+'</b>' for i in data.columns],
              fill_color='#7B77BD',
              font=dict(color='white', size=12),
              align=['left', 'center'] * int(len(data.columns)/2),
              height=40)

# 定义数据
cells = dict(values=[
                data[k].tolist() for k in data.columns],
             fill=dict(color=['white', 'aliceblue']),
             font=dict(color=['#707070', '#707070']),
             align=['left', 'center'] * int(len(data.columns)/2))

# 定义样式
style = dict(
    table=dict(
        border='thin lightgrey solid',
        line=dict(color='#7B77BD'),
        columnwidth=[40, 100, 40, 40],
        width=400,
        margin=dict(left=15, right=15, top=15, bottom=15),
        header=header,
        cells=cells))

# 调整布局
layout = go.Layout(width=500, height=300, autosize=True,
                   margin=dict(left=0, right=0, top=0, bottom=0),
                   font=dict(color='#707070', size=12),
                   title=dict(text='学生信息表', x=0.5))

# 创建表格
fig = dict(data=[dict(type='table', header=dict(
    values=['<b>'+str(i)+'</b>' for i in data.columns]), cells=dict(values=data.values.tolist()))],
    layout=go.Layout(
        title='学生信息表',
    ))

# 展示表格
pio.show(fig)

运行代码,即可看到一个带有特色的表格。具体说明:

  1. 使用 pandas 包读取数据,并存储在 DataFrame 中;
  2. 定义表头,将表头字体变为加粗白色,并且设置左对齐和居中的排列方式;
  3. 定义数据,使用 dict 存储数据并定义了各种样式;
  4. 定义样式,包含表格边框、列宽、字体大小等;
  5. 调整布局,使表格居中显示;
  6. 最后使用 pio.show 函数展示表格。
总结

Plotly 可以方便地创建漂亮的表格,自由度也十分高。开发者可以根据自己的需求,灵活运用 Plotly 的函数和样式参数,自定义表格样式,并将其用于自己的项目中。