ฉันจะใช้ 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
จะเป็นจุดเริ่มต้นที่ดี ฉันไม่ได้ใช้มันมากพอที่จะให้คำตอบที่ดี