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

Am1*_*3zA 1 text matplotlib

我有2个点(一个大小为8的向量)和3个不同的按位运算(And,Or,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   
Run Code Online (Sandbox Code Playgroud)

我正在使用的代码:

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()
Run Code Online (Sandbox Code Playgroud)

Mol*_*lly 6

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

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()
Run Code Online (Sandbox Code Playgroud)

在轴外的文本绘图

  • 另请参阅http://stackoverflow.com/questions/18769870/matplotlib-wxpython-not-sizing-correctly-with-legend/18771068#18771068以获取一些代码,这些代码会自动调整所有内容以适应 (2认同)