mcl*_*uka 1 python matplotlib python-2.7 python-3.x pandas
这是我的代码:
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
Run Code Online (Sandbox Code Playgroud)
report_str 是一个列表,填充了字符串,我将某些字符串复制到表中.
我尝试使用此代码保存表:
ax = df.plot()
fig = ax.get_figure()
fig.savefig('asdf.png')
Run Code Online (Sandbox Code Playgroud)
但是我得到一个错误:"空'DataFrame':没有要绘制的数字数据".
任何人都可以帮我解决这个问题吗?
首先,列列表的长度必须相同.您可以使用matplotlib绘制表格并table使用pandas函数.
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')
Run Code Online (Sandbox Code Playgroud)