我会使用LaTeX生成表,因为它们看起来很漂亮,您既可以生成图像,也可以直接将它们放在文档中。我使用以下代码实现了这一目标:
#!/usr/bin/env
import numpy as np
import os
x = np.array([[1,2],[3,4]])
def generateLatexTable(x):
start = [r'\documentclass[preview]{standalone}', r'\begin{document}', r'\begin{tabular}{%s}' % ('{1}{0}{1}'.format('|'.join(['r'] * x.shape[1]), '|')), r'\hline']
tab = [' & '.join(['%d' % val for val in row]) + r' \\ \hline' for row in x]
end = [r'\end{tabular}', r'\end{document}']
text = '\n'.join(start + tab + end)
return text
with open('table.tex', 'w') as f:
f.write(generateLatexTable(x))
os.system("pdflatex table.tex")
在此,使用文档类,该类preview
返回调整为文档内容(即只是表格)大小的图像。仅使用tabular
环境来呈现数据。单元格之间有水平和垂直条,但是更改它非常容易。在变量中tab
,将为每一行处理数据并将其转换为字符串。请注意,您必须在此位置指定输出格式。我将其设置为%d
所有内容都将转换为整数。
如果要直接在乳胶源中使用该表,则必须删除documentclass
和\begin{document}
以及\end{document}
变量start
和中的end
。最后,所有内容都放在一个乳胶源中,然后以形式存储到磁盘中table.tex
。如果只需要最后一个图像,则将生成的文件编译为table.pdf
。
这是输出的样子。但是就像我说的那样,因为它是LaTeX,所以更改外观非常容易:)
这是另一个示例,其中有一个大矩阵(14 x 14),其中填充了0到100范围内的随机数:
table
将是一个不错的起点。我还没有足够使用它来给出一个很好的答案。