千家信息网

Python怎么生成表格图片

发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,本篇内容介绍了"Python怎么生成表格图片"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!pytab
千家信息网最后更新 2025年01月17日Python怎么生成表格图片

本篇内容介绍了"Python怎么生成表格图片"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

pytab

首先安装

pip install pytab

然后我把画表格的代码封装成一个函数

import uuidfrom typing import List, Dict, Optional, Tupleimport pytabdef draw_table(data: Dict[str, list]):    """    画表格    :param data: 数据格式 {        'a': [1.0, 2.1, 3.5, 4.0, 2.0, 1.0, 2.1, 3.5, 4.0, 2.0, ],        'b': [5.7, 6.1, 7.2, 8.3, 1.2, 5.7, 6.1, 7.2, 8.3, 1.2, ],        }    :return:    """    # 设置字体,不然显示不了中文    pytab.plt.rcParams["font.sans-serif"] = ["SimHei"]    pytab.table(         data=data,        data_loc='center',        # th_type='dark',        th_c='#aaaaee',  # 设置表头背景颜色        td_c='gray',  # 设置数据行背景颜色        table_type='striped',        figsize=(len(data.keys()), int(len(data.values()) / len(data.keys()) + 1)),        # fontsize=18,    )    # pytab.show()    temp_file = os.path.join(tempfile.gettempdir(), f'{uuid.uuid4().hex}.jpg')    print(temp_file)    pytab.save(temp_file)    return temp_file

按照注释的这个数据格式,a和b是表头列名,后面的数组是每一列的数据,很好理解

{    'a': [1.0, 2.1, 3.5, 4.0, 2.0, 1.0, 2.1, 3.5, 4.0, 2.0, ],    'b': [5.7, 6.1, 7.2, 8.3, 1.2, 5.7, 6.1, 7.2, 8.3, 1.2, ],}

画出来的表格是这样的

再来试试中文显示会怎么样

{    '列1': [1.0, 2.1, 3.5, 4.0, 2.0, 1.0, 2.1, 3.5, 4.0, 2.0, ],    '列2': [5.7, 6.1, 7.2, 8.3, 1.2, 5.7, 6.1, 7.2, 8.3, 1.2, ],}

画出来是这样

有点丑吧,勉强能看

OK~ 关于pytab的就不多折腾了,毕竟上限就在这了

接下来看看plotly

plotly

首先安装

pip install plotly

话不多说,老规矩,我又是写成一个函数

import uuidfrom typing import List, Dict, Optional, Tupleimport plotly.graph_objects as goimport plotly.io as piodef draw_table(headers: List[str], cells: List[list]):    """    画表    :param headers: header=dict(values=['A Scores', 'B Scores'])    :param cells: cells=dict(values=[[100, 90, 80, 90], [95, 85, 75, 95]])    :return:    """    pio.kaleido.scope.default_width = len(','.join(headers)) * 20    pio.kaleido.scope.default_height = 250 + len(cells[0]) * 20    fig = go.Figure(data=[go.Table(header=dict(values=headers), cells=dict(values=cells))])    # fig.show()    image_file = os.path.join(tempfile.gettempdir(), f'{uuid.uuid4().hex}.jpg')    print('write image to', image_file)    fig.write_image(image_file)    return image_file

这次的参数格式更前面的pytab不一样,要传两个参数,都是数组类型

第一个是表头,第二个数组是单元格

先来个例子试试

draw_table(['列A', '列B'], [[100, 90, 80, 90], [95, 85, 75, 95]])

然后把上面函数代码里的 fig.show() 注释去掉,可以看到生成的表格图片效果

运行后可以发现自动打开了浏览器,因为这个库是使用网页来渲染表格的,

效果如下:

"Python怎么生成表格图片"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0