Я б використовував 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 х 14), заповненою випадковими числами від 0 до 100:
table
було б гарне місце для початку. Я не використав її достатньо, щоб дати хорошу відповідь.