J'utiliserais LaTeX pour générer les tableaux, car ils ont l'air fantaisistes et vous pouvez soit générer une image ou les mettre directement dans votre document. J'ai utilisé le code suivant pour y parvenir:
#!/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")
Ici, la classe de document preview
est utilisée qui renvoie une image redimensionnée au contenu du document, c'est-à-dire juste la table. Seul un tabular
environnement est utilisé pour présenter les données. Il y a des barres horizontales et verticales entre les cellules, mais il est très facile de changer cela. Dans la variable, tab
les données sont traitées pour chaque ligne et converties en chaîne. Notez que vous devez spécifier le format de sortie à cette position. Je l'ai défini pour %d
que tout soit converti en entiers.
Si vous souhaitez utiliser le tableau directement dans une source latex, vous devez supprimer documentclass
et \begin{document}
ainsi que \end{document}
dans les variables de start
et end
. Enfin, tout est rassemblé dans une source latex qui est ensuite stockée sur le disque sous table.tex
. Si vous voulez juste l'image à la fin, le fichier résultant est compilé table.pdf
.
Voici à quoi ressemble la sortie. Mais comme je l'ai dit, il est très facile de changer l'apparence puisque c'est LaTeX :)
Voici un autre exemple avec une grande matrice (14 x 14), remplie de nombres aléatoires allant de 0 à 100:
table
serait un bon point de départ. Je ne l'ai pas suffisamment utilisé pour donner une bonne réponse.