这是我的代码:
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')
