Skip to main content
 首页 » 编程设计

python之将 pandas 表(填充有字符串)保存为 png

2025年05月04日34birdshome

这是我的代码:

column1 = ['Measured Set', '1. set', '2. set', '3. set'] 
column2= ['Breached parameter (number of breaches, %)' ] 
column3 = ['Breached parameter (number of breaches, %)'] 
 
for j in range(NOT): 
    column2.append(report_str[0][j]) 
    column3.append(report_str[1][j]) 
 
data = { 
    'Sensor': column1, 
    'Sensor 1': column2, 
    'Sensor 2': column3, 
} 
 
df = pd.DataFrame(data) 
df 

report_str 是一个列表,其中充满了我从中将某些字符串复制到表中的字符串。

我试过用这段代码保存表格:

ax = df.plot() 
fig = ax.get_figure() 
fig.savefig('asdf.png') 

但我收到错误消息:“空的‘DataFrame’:没有要绘制的数字数据”。

这是我要保存的输出表:

谁能帮我解决这个问题?

请您参考如下方法:

首先,您的列列表必须具有相同的长度。您可以使用 matplotlib 和来自 pandas 的 table 函数绘制表格。

import pandas as pd 
import matplotlib.pylab as plt 
from pandas.tools.plotting import table 
 
# I add None value to align all lists 
column1 = ['Measured Set', '1. set', '2. set', '3. set'] 
column2= ['Breached parameter (number of breaches, %)', None, None,None ] 
column3 = ['Breached parameter (number of breaches, %)', None, None,None] 
 
data = { 
    'Sensor': column1, 
    'Sensor 1': column2, 
    'Sensor 2': column3, 
} 
 
df = pd.DataFrame(data) 
print(df) 
 
# set fig size 
fig, ax = plt.subplots(figsize=(12, 3))  
# no axes 
ax.xaxis.set_visible(False)   
ax.yaxis.set_visible(False)   
# no frame 
ax.set_frame_on(False)   
# plot table 
tab = table(ax, df, loc='upper right')   
# set font manually 
tab.auto_set_font_size(False) 
tab.set_fontsize(8)  
# save the result 
plt.savefig('table.png')