pylab中表的子图

时间:2012-06-26 13:53:04

标签: python matplotlib

我正在寻找一种方法来创建包含几个子图的图形。让我试着解释我在说什么。下面是一个包含多个imshow图的子图的图。我想要完全相同的数字,但不是“imshow”图,而是我想要表,只是普通表。在我的例子中,他们只显示值1和2:

[1, 2]
[2, 1]

我该怎么做?

提前感谢

enter image description here

以下是我用来生成图表的代码。

import pylab
import numpy as np

x = np.array([[1,2],[2,1]])

fig = pylab.figure()

fig_list = []

for i in xrange(5):

    fig_list.append( fig.add_subplot(2,3,i+1) )
    fig_list[i] = pylab.imshow(x)


pylab.savefig('my_fig.pdf')
pylab.show()

1 个答案:

答案 0 :(得分:2)

您可以使用pylab.table命令,找到文档here

例如:

import pylab
import numpy as np

x = [[1,2],[2,1]]

fig = pylab.figure()

axes_list = []
table_list = []

for i in xrange(5):
    axes_list.append( fig.add_subplot(2,3,i+1) )
    axes_list[i].set_xticks([])
    axes_list[i].set_yticks([])
    axes_list[i].set_frame_on(False)
    table_list.append(pylab.table(cellText=x,colLabels = ['col']*2,rowLabels=['row']*2,colWidths = [0.3]*2,loc='center'))

pylab.savefig('my_fig.pdf')
pylab.show()

我还创建了一个额外的列表变量,并重命名了fig_list,因为轴实例被绘制对象的实例覆盖了。现在您可以访问这两个句柄了。

其他有用的命令包括:​​

# Specify a title for the plot
axes_list[i].set_title('test')

# Specify the axes size and position
axes_list[i].set_position([left, bottom, width, height])

# The affect of the above set_position can be seen by turning the axes frame on, like so:
axes_list[i].set_frame_on(True)

文档: