绘制其外有大量文字的情节(matplotlib)

时间:2013-11-11 04:46:16

标签: text matplotlib

我有2个点(大小为8的向量)和3个不同的按位运算(And,Or,Xor)我在2D图上映射了每个点和按位运算的结果。现在我想要显示每个点真实数据本身和绘图旁边的操作结果(绘图的右边或绘图上方(只要可能或者它更好))所以稍后当我想分析结果时我可以轻松读取数据值。现在我的形象是这样的,你可以看到传说被切断了,我没有在情节之外写任何东西的地方:

enter image description here

我希望在我的情节之外展示的文字:

P1  P2  And Or  Xor     
0   1   0   1   1   
0   0   0   0   0   
0   0   0   0   0   
0   0   0   0   0   
1   1   1   1   0   
1   1   1   1   0   
1   1   1   1   0   
1   1   1   1   0   

我正在使用的代码:

import numpy as np
import pylab as pl
fig = pl.figure()
ax = fig.add_subplot(111)

ax.plot(p1x, p1y, 'bx', label='Point 1', alpha=.55, markersize=30)
ax.plot(p2x, p2y, 'r+', label='Point 2', alpha=.55, markersize=30)
ax.plot(Andx, Andy, 'go', label='AND', alpha=.45, markersize=10) 
ax.plot(Orx, Ory, 'y<', label='OR', alpha=.45, markersize=10) 
ax.plot(Xorx, Xory, 'ks',  label='XOR', alpha=.45, markersize=10) 
ax.set_title('Bitwise Operation')
ax.set_xlabel('axis X')
ax.set_ylabel('axis Y')
ax.axis([-0.05, 1.05, -0.05, 1.05])
pl.legend(loc='lower left', bbox_to_anchor=(1.02, 0), borderaxespad=0)
pl.show()

2 个答案:

答案 0 :(得分:6)

您可以使用add_axes直接控制轴的大小和位置,然后使用text添加所需的文字。例如:

import numpy as np
import pylab as pl
fig = pl.figure()

ax =  fig.add_axes([0.1, 0.2, 0.4, 0.4])

ax.plot(.1, .2, 'bx', label='Point 1', alpha=.55, markersize=30)
ax.plot(.2, .1, 'r+', label='Point 2', alpha=.55, markersize=30)
ax.plot(.3, .2, 'go', label='AND', alpha=.45, markersize=10) 
ax.plot(.1, .3, 'y<', label='OR', alpha=.45, markersize=10) 
ax.plot(.1, .2, 'ks',  label='XOR', alpha=.45, markersize=10) 
ax.set_title('Bitwise Operation')
ax.set_xlabel('axis X')
ax.set_ylabel('axis Y')
ax.axis([-0.05, 1.05, -0.05, 1.05])
pl.legend(loc='lower left', bbox_to_anchor=(1.02, 0), borderaxespad=0)

data = ('P1  P2  And Or  Xor \n'
'0   1   0   1   1   \n'
'0   0   0   0   0   \n'
'0   0   0   0   0   \n'
'0   0   0   0   0   \n'
'1   1   1   1   0   \n'
'1   1   1   1   0   \n'
'1   1   1   1   0   \n'
'1   1   1   1   0   \n')

pl.text(1.75,0,data)
pl.show()

plot with text outside of axis

答案 1 :(得分:1)

就我而言,我必须在文本框中显示某些额外的数据(图形的参数),类似于Matlab中的“文本外部区域”。经过一番尝试和错误,我偶然发现了写得很好的答案here

答案的后处理部分确实很有帮助。 与plt.subplots_adjust

相比,plt.tight_layout为程序员提供了更好的控制