我正在寻找一种方法来创建包含几个子图的图形。让我试着解释我在说什么。下面是一个包含多个imshow
图的子图的图。我想要完全相同的数字,但不是“imshow”图,而是我想要表,只是普通表。在我的例子中,他们只显示值1和2:
[1, 2]
[2, 1]
我该怎么做?
提前感谢
以下是我用来生成图表的代码。
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()
答案 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)
文档: