Python怎么生成表格图片
短信预约 -IT技能 免费直播动态提醒
本篇内容介绍了“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怎么生成表格图片”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341