将pandas表(用字符串填充)保存为png

时间:2017-06-25 22:06:43

标签: python python-2.7 python-3.x pandas matplotlib

这是我的代码:

body {
  background-color: rgb(41, 41, 41);
  margin-left: 30px;
  margin-right: 30px;
}

.main-header {
  font-family: 'Keania one', serif;
  color: rgb(82, 68, 50);
  font-size: 64px;
  margin-bottom: 100px;

}
.header-image {
  width: 300px;
  height: 300px;
  border-radius: 20px;
  border: 5px solid #3D3124;
  margin-top: 10px;
  margin-left: 15px;
}
.header {
  background-color: #3D3730;
  border-radius: 30px;

}

hr {
  background-color: #524432;
  margin-bottom: 80px;
  height: 1px;
  border-radius: 20px;
}

.facts {
  text-align: center;

}


.facts li {
  display: list-style;
  list-style: circle;
  font-family: "Crimson Text", serif;
  font-size: 24px;
  color: black;


  /* bootstrap floats to left - for override

  */
}

.facts li:first-child {
  margin-top: 40px;

} `

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

但是我收到了一个错误:"空' DataFrame':没有要绘制的数字数据"。

这是我要保存的输出表: enter image description here

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:5)

首先,您的列列表必须具有相同的长度。您可以使用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')

enter image description here

答案 1 :(得分:0)

如果收到下一个异常: “没有名为pandas.tools的模块”

使用以下导入: 从pandas.plotting导入表中