欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python數(shù)據(jù)展示之生成表格圖片

 更新時(shí)間:2022年04月10日 19:02:53   作者:代碼輸入中...  
這篇文章主要介紹了Python數(shù)據(jù)展示之生成表格圖片,文章基于Python庫(kù)的相關(guān)資料展開(kāi)對(duì)主題的詳細(xì)介紹,具有一定的參考價(jià)值需要的小伙伴可以參考一下

前言:

本文來(lái)講講如何用Python生成表格圖片。

選一個(gè)合適庫(kù)

Python最大的優(yōu)點(diǎn)就是第三方庫(kù)豐富,基本你要什么功能,都能找到別人實(shí)現(xiàn)好的庫(kù),幾行代碼一調(diào)用就完事了。

Pytable

最先找到的是日本人開(kāi)發(fā)的pytab庫(kù),它是基于 matplotlib 來(lái)畫圖的,默認(rèn)參數(shù)下生成的表格外觀一般般,而且顯示不了中文字符,字體也很小,效果不理想。

我一開(kāi)始還抱著死磕的心態(tài),把這個(gè)庫(kù)的源碼下載下來(lái)魔改,改了字體和大小,生成的表格終于能看了,但排版還是會(huì)出各種奇奇怪怪的問(wèn)題,比如文字溢出單元格之類的,心累……

Plotly:官網(wǎng)地址

后面找到了一個(gè)新的庫(kù):plotly,

官網(wǎng)的介紹是:

專門為機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)設(shè)計(jì)的前端展示工具,單純拿來(lái)畫表格還算大材小用了~ 它是用網(wǎng)頁(yè)來(lái)渲染的,看例子效果還可以,我就換成這個(gè)plotly試試,嗯,真的可以,那就這個(gè)了。

本文會(huì)分別介紹這兩個(gè)庫(kù)的使用,包括我魔改了pytab的地方。

(不過(guò)還是推薦plotly,網(wǎng)頁(yè)渲染就是好)

pytab

首先安裝

pip install pytab

然后我把畫表格的代碼封裝成一個(gè)函數(shù)

import uuid
from typing import List, Dict, Optional, Tuple

import pytab

def draw_table(data: Dict[str, list]):
? ? """
? ? 畫表格

? ? :param data: 數(shù)據(jù)格式 {
? ? ? ? '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:
? ? """
? ? # 設(shè)置字體,不然顯示不了中文
? ? pytab.plt.rcParams["font.sans-serif"] = ["SimHei"]
? ? pytab.table(?
? ? ? ? data=data,
? ? ? ? data_loc='center',
? ? ? ? # th_type='dark',
? ? ? ? th_c='#aaaaee', ?# 設(shè)置表頭背景顏色
? ? ? ? td_c='gray', ?# 設(shè)置數(shù)據(jù)行背景顏色
? ? ? ? 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

按照注釋的這個(gè)數(shù)據(jù)格式,a和b是表頭列名,后面的數(shù)組是每一列的數(shù)據(jù),很好理解

{
? ? '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, ],
}

畫出來(lái)的表格是這樣的

再來(lái)試試中文顯示會(huì)怎么樣

{
? ? '列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, ],
}

畫出來(lái)是這樣

有點(diǎn)丑吧,勉強(qiáng)能看

OK~ 關(guān)于pytab的就不多折騰了,畢竟上限就在這了

接下來(lái)看看plotly

plotly

首先安裝

pip install plotly

話不多說(shuō),老規(guī)矩,我又是寫成一個(gè)函數(shù)

import uuid
from typing import List, Dict, Optional, Tuple

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

def 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

這次的參數(shù)格式更前面的pytab不一樣,要傳兩個(gè)參數(shù),都是數(shù)組類型

第一個(gè)是表頭,第二個(gè)數(shù)組是單元格

先來(lái)個(gè)例子試試

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

然后把上面函數(shù)代碼里的 fig.show() 注釋去掉,可以看到生成的表格圖片效果

運(yùn)行后可以發(fā)現(xiàn)自動(dòng)打開(kāi)了瀏覽器,因?yàn)檫@個(gè)庫(kù)是使用網(wǎng)頁(yè)來(lái)渲染表格的,

效果如下:

效果比前面那個(gè)pytab好一些

到此這篇關(guān)于Python數(shù)據(jù)展示之生成表格圖片的文章就介紹到這了,更多相關(guān)Python生成表格圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 修復(fù)python-memcached在python3.8環(huán)境中報(bào)SyntaxWarning的問(wèn)題(完美解決)

    修復(fù)python-memcached在python3.8環(huán)境中報(bào)SyntaxWarning的問(wèn)題(完美解決)

    我們一直使用python-memcached庫(kù)來(lái)操作memcached,最近發(fā)現(xiàn)在python3.8的環(huán)境中,代碼會(huì)報(bào)錯(cuò),下面通過(guò)本文給大家講解修復(fù)python-memcached在python3.8環(huán)境中報(bào)SyntaxWarning的問(wèn)題及解決方法,需要的朋友可以參考下
    2022-08-08
  • macbook如何徹底刪除python的實(shí)現(xiàn)方法

    macbook如何徹底刪除python的實(shí)現(xiàn)方法

    本文主要介紹了macbook如何徹底刪除python的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 常見(jiàn)Python AutoEDA工具庫(kù)及功能使用探究

    常見(jiàn)Python AutoEDA工具庫(kù)及功能使用探究

    AutoEDA(自動(dòng)探索性數(shù)據(jù)分析)工具庫(kù)是數(shù)據(jù)科學(xué)中至關(guān)重要的一部分,它們能夠自動(dòng)生成數(shù)據(jù)摘要、探查數(shù)據(jù)的基本特征、檢測(cè)異常值和提供可視化,為數(shù)據(jù)科學(xué)家和分析師們提供了解數(shù)據(jù)的便捷方式,本文為大家介紹常見(jiàn)的AutoEDA工具庫(kù)及其功能和示例代碼
    2024-01-01
  • 在Django中使用MQTT的方法

    在Django中使用MQTT的方法

    這篇文章主要介紹了在Django中使用MQTT的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Python計(jì)算信息熵實(shí)例

    Python計(jì)算信息熵實(shí)例

    這篇文章主要介紹了Python計(jì)算信息熵實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • python 判斷文件或文件夾是否存在

    python 判斷文件或文件夾是否存在

    這篇文章主要介紹了python 判斷文件或文件夾是否存在,Python 操作文件時(shí),我們一般要先判斷指定的文件或目錄是否存在,不然容易產(chǎn)生異常,下面我們就來(lái)學(xué)習(xí)如何利用python檢查文件是否存在吧
    2022-03-03
  • Pytorch Tensor 輸出為txt和mat格式方式

    Pytorch Tensor 輸出為txt和mat格式方式

    今天小編就為大家分享一篇Pytorch Tensor 輸出為txt和mat格式方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Python3如何實(shí)現(xiàn)列表模糊匹配列表

    Python3如何實(shí)現(xiàn)列表模糊匹配列表

    這篇文章主要介紹了Python3如何實(shí)現(xiàn)列表模糊匹配列表,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Python 函數(shù)的遞歸詳解

    Python 函數(shù)的遞歸詳解

    這篇文章主要為大家介紹了Python 函數(shù)的遞歸,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • wxPython窗口中文亂碼解決方法

    wxPython窗口中文亂碼解決方法

    這篇文章主要介紹了wxPython窗口中文亂碼解決方法,在Python程序設(shè)計(jì)中比較常見(jiàn),是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-10-10

最新評(píng)論