Text 绘制外部有大量文本的绘图(matplotlib)

Text 绘制外部有大量文本的绘图(matplotlib),text,matplotlib,Text,Matplotlib,我有2个点(大小为8的向量)和3个不同的位运算(和,或,Xor),我在2D绘图上映射了每个点和位运算的结果。现在,我想显示每个点的真实数据本身以及绘图旁边的操作结果(绘图的右侧或绘图上方(只要可能或更好)),以便以后在分析结果时,可以轻松读取数据值。现在我的图像是这样的,你可以看到图例被切断了,我在绘图之外没有地方写任何东西: 我要在绘图之外显示的文本: P1 P2 And Or Xor 0 1 0 1 1 0 0 0 0 0 0

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

我要在绘图之外显示的文本:

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()
将numpy导入为np
将pylab作为pl导入
图=pl.图()
ax=图添加_子批次(111)
坐标图(p1x,p1y,'bx',label='Point 1',alpha=.55,markersize=30)
ax.绘图(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您可以使用它直接控制轴的大小和位置,然后使用它添加所需的文本。例如:

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()
将numpy导入为np
将pylab作为pl导入
图=pl.图()
ax=图中添加的轴([0.1,0.2,0.4,0.4])
坐标图(.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可用于直接控制轴的大小和位置,然后用于添加所需的文本。例如:

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()
将numpy导入为np
将pylab作为pl导入
图=pl.图()
ax=图中添加的轴([0.1,0.2,0.4,0.4])
坐标图(.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在我的例子中,我必须在一个文本框中显示某些额外的数据(图形的参数),类似于中的“文本外部区域”。经过一些尝试和错误,我偶然发现了这个写得很好的答案

答案的后处理部分非常有用。
plt.subplot\u adjust
给程序员提供了比
plt.tight\u布局更好的控制。在我的例子中,我不得不在文本框中显示某些额外的数据(图形参数),类似于中的“区域外文本”。经过一些尝试和错误,我偶然发现了这个写得很好的答案

答案的后处理部分非常有用。
plt.subplot\u adjust
plt.tight\u布局

为程序员提供了更好的控制。另请参阅一些将自动调整所有内容大小以适应需要的代码。也请参阅一些将自动调整所有内容大小以适应需要的代码