2015-08-21 17 views
6

Chỉ có thể vẽ một bảng bằng matplotlib? Nếu tôi bỏ ghi chú dòngBảng Matplotlib chỉ

plt.bar(index, data[row], bar_width, bottom=y_offset, color=colors[row]) 

của ví dụ này code, cốt truyện vẫn hiển thị. Tôi muốn có một bảng trên cửa sổ (PyQt) của tôi và bên dưới một âm mưu (với một số không gian ở giữa).

Mọi trợ giúp đều được đánh giá cao!

Trả lời

8

Nếu bạn chỉ muốn thay đổi example và đặt bàn ở phía trên, sau đó loc='top' trong việc kê khai bảng là những gì bạn cần,

the_table = ax.table(cellText=cell_text, 
         rowLabels=rows, 
         rowColours=colors, 
         colLabels=columns, 
         loc='top') 

Sau đó điều chỉnh âm mưu với,

plt.subplots_adjust(left=0.2, top=0.8) 

Tùy chọn linh hoạt hơn là đặt bảng theo trục riêng của mình bằng các ô con,

import numpy as np 
import matplotlib.pyplot as plt 


fig, axs =plt.subplots(2,1) 
clust_data = np.random.random((10,3)) 
collabel=("col 1", "col 2", "col 3") 
axs[0].axis('tight') 
axs[0].axis('off') 
the_table = axs[0].table(cellText=clust_data,colLabels=collabel,loc='center') 

axs[1].plot(clust_data[:,0],clust_data[:,1]) 
plt.show() 

mà trông như thế này,

enter image description here

Bạn đang sau đó tự do để điều chỉnh vị trí của trục như required.

+0

Great câu trả lời, cảm ơn! – snowflake

4

Không chắc nếu điều này đã được trả lời, nhưng nếu bạn muốn chỉ một bảng trong một cửa sổ hình, sau đó bạn có thể ẩn các trục:

fig, ax = plt.subplots() 

# Hide axes 
ax.xaxis.set_visible(False) 
ax.yaxis.set_visible(False) 

# Table from Ed Smith answer 
clust_data = np.random.random((10,3)) 
collabel=("col 1", "col 2", "col 3") 
ax.table(cellText=clust_data,colLabels=collabel,loc='center') 
3

Đây là một lựa chọn để viết một dataframe gấu trúc trực tiếp vào một matplotlib bảng:

import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 

fig, ax = plt.subplots() 

# hide axes 
fig.patch.set_visible(False) 
ax.axis('off') 
ax.axis('tight') 

df = pd.DataFrame(np.random.randn(10, 4), columns=list('ABCD')) 

ax.table(cellText=df.values, colLabels=df.columns, loc='center') 

fig.tight_layout() 

plt.show() 

enter image description here

Các vấn đề liên quan