AFAIK, bạn không thể tùy tiện nơi một bảng trên matplotlib
cốt truyện chỉ sử dụng có nguồn gốc matplotlib
tính năng. Những gì bạn có thể làm là tận dụng khả năng của latex
text rendering. Tuy nhiên, để làm được điều này bạn nên làm việc với môi trường latex
trong hệ thống của bạn. Nếu bạn có, bạn sẽ có thể tạo ra các đồ thị như dưới đây:
import pylab as plt
import matplotlib as mpl
mpl.rc('text', usetex=True)
plt.figure()
ax=plt.gca()
y=[1,2,3,4,5,4,3,2,1,1,1,1,1,1,1,1]
#plt.plot([10,10,14,14,10],[2,4,4,2,2],'r')
col_labels=['col1','col2','col3']
row_labels=['row1','row2','row3']
table_vals=[11,12,13,21,22,23,31,32,33]
table = r'''\begin{tabular}{ c | c | c | c } & col1 & col2 & col3 \\\hline row1 & 11 & 12 & 13 \\\hline row2 & 21 & 22 & 23 \\\hline row3 & 31 & 32 & 33 \end{tabular}'''
plt.text(9,3.4,table,size=12)
plt.plot(y)
plt.show()
Kết quả là:
Xin hãy nhớ rằng đây là một ví dụ quick'n'dirty; bạn sẽ có thể đặt bảng một cách chính xác bằng cách chơi với các tọa độ văn bản. Xin vui lòng tham khảo các docs nếu bạn cần thay đổi phông chữ vv
UPDATE: thêm về pyplot.table
Theo documentation, plt.table
thêm một bảng để trục hiện hành. Từ các nguồn hiển nhiên, vị trí bảng trên biểu đồ được xác định liên quan đến các trục. Có thể kiểm soát tọa độ Y
với từ khóa top
(biểu đồ trên), upper
(ở nửa trên), center
(ở giữa), lower
(ở nửa dưới) và bottom
(bên dưới biểu đồ). Tọa độ X
được kiểm soát với từ khóa left
và right
. Bất kỳ kết hợp nào của hai tác phẩm, ví dụ: bất kỳ của top left
, center right
và bottom
là OK để sử dụng.
Vì vậy, đồ thị gần nhất với những gì bạn muốn có thể được thực hiện với:
import matplotlib.pylab as plt
plt.figure()
ax=plt.gca()
y=[1,2,3,4,5,4,3,2,1,1,1,1,1,1,1,1]
#plt.plot([10,10,14,14,10],[2,4,4,2,2],'r')
col_labels=['col1','col2','col3']
row_labels=['row1','row2','row3']
table_vals=[[11,12,13],[21,22,23],[31,32,33]]
# the rectangle is where I want to place the table
the_table = plt.table(cellText=table_vals,
colWidths = [0.1]*3,
rowLabels=row_labels,
colLabels=col_labels,
loc='center right')
plt.text(12,3.4,'Table Title',size=8)
plt.plot(y)
plt.show()
Và điều này mang đến cho bạn
Hope this helps!
Bạn đã thử xem qua [this] (http://matplotlib.sourceforge.net/mpl_examples/pylab_examples/table_demo.py) ví dụ? Hoặc bạn thậm chí có thể làm điều gì đó [tương tự] (http://matplotlib.sourceforge.net/examples/pylab_examples/annotation_demo3.html), nhưng thay vì chú thích, bạn có một bảng. – cosmosis
Có tôi đã xem ví dụ đó. Khi tôi cố gắng sử dụng mã, tôi không thể chỉ định màu và vị trí của hàng. Tôi cũng không thể tìm thấy bất kỳ trợ giúp nào về cú pháp hoặc loại cho cuộc gọi. Đối với chú thích, tôi tin rằng có nhiều kiểm soát xác định một trục thứ hai để vẽ bảng trong. – user1032355