Python 如何仅在Matplotlib中打印表格?

Python 如何仅在Matplotlib中打印表格?,python,matplotlib,pyqt,Python,Matplotlib,Pyqt,是否可以仅使用matplotlib绘制表格?如果我取消对该行的注释 plt.bar(index, data[row], bar_width, bottom=y_offset, color=colors[row]) 在本例中,绘图仍然可见。我希望在我的(PyQt)窗口顶部和绘图下方有一个表(中间有一些空间)。如果您只想更改并将表放在顶部,那么表声明中的loc='top'就是您所需要的 the_table = ax.table(cellText=cell_text,

是否可以仅使用matplotlib绘制表格?如果我取消对该行的注释

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

在本例中,绘图仍然可见。我希望在我的(PyQt)窗口顶部和绘图下方有一个表(中间有一些空间)。

如果您只想更改并将表放在顶部,那么表声明中的
loc='top'
就是您所需要的

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

plt.subplots_adjust(left=0.2, top=0.8)
一个更灵活的选择是使用子地块将表格放在其自己的轴上

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()
看起来像这样


然后,您可以根据需要自由调整轴的位置。

不确定是否已回答此问题,但如果您只需要图形窗口中的表格,则可以隐藏轴:

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')

这是将数据帧直接写入matplotlib表的另一个选项:

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()

您可以:

#axs[1].plot(clust_data[:,0],clust_data[:,1]) # Remove this if you don't need it
axs[1].axis("off")  # This will leave the table alone in the window 

我想在下面有一个表和两个图,我们可以这样做吗。@vinayak_narune,是的,使用
fig,axs=plt。子图(3,1)
Hi,我有很多列(超过20列),这个解决方案导致我的表的内容非常小,更改字体没有帮助,更改尺寸也没有帮助。是否有办法对表格进行编程以调整内容的大小?@Marta,您可以将中的
fontsize=fs
作为额外参数添加到表格中,尝试不同的
fs
值可能会奏效(请参阅)。如果你不能解决这个问题,最好问一个新问题。嗨,有点离题了,但我似乎要进入一个不太受欢迎的领域。您是否知道如何将此表的样式设置为交替的灰色行?看起来MatPlotib表具有
CellColor
选项()。如果不清楚如何交替进行,最好考虑一个新问题