本篇內容介紹了“Python怎么生成表格圖片”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
首先安裝
pip install pytab
然后我把畫表格的代碼封裝成一個函數
import uuid from typing import List, Dict, Optional, Tuple import pytab def 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
首先安裝
pip install plotly
話不多說,老規矩,我又是寫成一個函數
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
這次的參數格式更前面的pytab不一樣,要傳兩個參數,都是數組類型
第一個是表頭,第二個數組是單元格
先來個例子試試
draw_table(['列A', '列B'], [[100, 90, 80, 90], [95, 85, 75, 95]])
然后把上面函數代碼里的 fig.show()
注釋去掉,可以看到生成的表格圖片效果
運行后可以發現自動打開了瀏覽器,因為這個庫是使用網頁來渲染表格的,
效果如下:
“Python怎么生成表格圖片”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。