Tôi sẽ sử dụng LaTeX để tạo các bảng, vì chúng trông lạ mắt và bạn có thể tạo hình ảnh hoặc trực tiếp đưa chúng vào tài liệu của mình. Tôi đã sử dụng mã sau đây để đạt được điều này:
#!/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")
Ở đây, lớp tài liệu preview
được sử dụng để trả về một hình ảnh được thay đổi kích thước theo nội dung của tài liệu, tức là chỉ bảng. Chỉ có một tabular
môi trường được sử dụng để trình bày dữ liệu. Có các thanh ngang và dọc giữa các ô, nhưng rất dễ dàng để thay đổi điều này. Trong biến tab
, dữ liệu được xử lý cho mỗi hàng và được chuyển đổi thành một chuỗi. Lưu ý rằng bạn phải chỉ định định dạng đầu ra ở vị trí này. Tôi đặt nó để %d
mọi thứ được chuyển đổi thành số nguyên.
Nếu bạn muốn sử dụng bảng trực tiếp trong nguồn latex, bạn phải loại bỏ documentclass
và \begin{document}
cũng như \end{document}
trong các biến của start
và end
. Cuối cùng, mọi thứ được đặt cùng nhau trong một nguồn latex sau đó được lưu trữ vào đĩa dưới dạng table.tex
. Nếu bạn chỉ muốn hình ảnh cuối cùng, tập tin kết quả được biên dịch thành table.pdf
.
Đây là những gì đầu ra trông như thế nào. Nhưng như tôi đã nói, rất dễ thay đổi ngoại hình vì nó là LaTeX :)
Dưới đây là một ví dụ khác với ma trận lớn (14 x 14), chứa đầy các số ngẫu nhiên từ 0 đến 100:
table
sẽ là một nơi tốt để bắt đầu. Tôi đã không sử dụng nó đủ để đưa ra một câu trả lời tốt.