You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何从Plotly生成的HTML表格中复制数据?

解决Plotly HTML表格无法复制数据的问题

你遇到的问题是因为Plotly默认用SVG渲染表格,SVG里的文本默认不支持选中复制。这里有几个实用的解决办法:


方法1:让表格单元格可选中复制

给表格的cells参数添加editable=True,这样单元格会变成可编辑状态,里面的数值就能直接选中复制了。修改后的代码如下:

import numpy as np
import plotly.graph_objs as go
fig = go.Figure()
fig.add_trace(
    go.Table(
        header=dict(
            values=["<b>Fixed Cost</b>", "<b>Variable Cost</b>", "<b>Start Up Cost</b>", "<b>Shut Down Cost</b>", "<b>Total Cost</b>", "<b>Exports</b>"],
            font=dict(size=16),
            align="center",
            height=40
        ),
        cells=dict(
            values=[np.random.randint(10, 50, 5), np.random.randint(10, 50, 5), np.random.randint(10, 50, 5), np.random.randint(10, 50, 5), np.random.randint(10, 50, 5), np.random.randint(10, 50, 5), ],
            align=["center", "center"],
            font=dict(size=16),
            height=40,
            editable=True  # 开启可编辑/选中功能
        )
    )
)
fig.update_layout(font=dict(size=14), autosize=False, width=1000, height=1000)
fig.show()

方法2:用模式栏导出CSV数据

Plotly图表右上角默认有个模式栏,里面有个「下载CSV」按钮,点击就能把表格数据导出成CSV文件,打开文件后就能随意复制数据了。如果模式栏没显示,就在fig.show()里加个配置开启:

fig.show(config={'displayModeBar': True})

方法3:手动提取数据

如果只是需要快速获取数据,也可以直接在代码里提取表格数据,打印或者保存成文件:

# 提取表格的单元格数据
table_data = fig.data[0].cells.values

# 打印每一行数据
for row in zip(*table_data):
    print(row)

# 或者保存为CSV文件
import csv
with open('table_data.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    # 写入表头
    writer.writerow(["Fixed Cost", "Variable Cost", "Start Up Cost", "Shut Down Cost", "Total Cost", "Exports"])
    # 写入数据行
    writer.writerows(zip(*table_data))

内容的提问来源于stack exchange,提问作者Vesper

火山引擎 最新活动