Я бы использовал 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
было бы хорошим местом для начала. Я не использовал это достаточно, чтобы дать хороший ответ.