Użyłbym LaTeXa do wygenerowania tabel, ponieważ wyglądają fantazyjnie i możesz albo wygenerować obraz, albo bezpośrednio umieścić je w swoim dokumencie. Aby to osiągnąć, użyłem następującego kodu:
#!/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")
W tym przypadku preview
używana jest klasa dokumentu, która zwraca obraz o zmienionym rozmiarze do zawartości dokumentu, tj. Tylko tabeli. Do tabular
prezentacji danych używane jest tylko środowisko. Pomiędzy komórkami znajdują się poziome i pionowe paski, ale bardzo łatwo to zmienić. W zmiennej tab
dane są przetwarzane dla każdego wiersza i konwertowane na ciąg. Pamiętaj, że musisz określić format wyjściowy w tej pozycji. Ustawiłem na %d
tak, aby wszystko było konwertowane na liczby całkowite.
Jeśli chcesz używać tabeli bezpośrednio w źródle lateksu, musisz usunąć, documentclass
a \begin{document}
także \end{document}
w zmiennych start
i end
. Na koniec wszystko składa się w źródło lateksu, które jest następnie przechowywane na dysku jako table.tex
. Jeśli chcesz tylko obraz na końcu, plik wynikowy zostanie skompilowany table.pdf
.
Oto jak wygląda wyjście. Ale tak jak powiedziałem, bardzo łatwo jest zmienić wygląd, ponieważ jest to LaTeX :)
Oto kolejny przykład z dużą matrycą (14 x 14), wypełnioną losowymi liczbami od 0 do 100:
table
że byłby to dobry początek. Nie wykorzystałem go wystarczająco, aby dać dobrą odpowiedź.