绘制带有大量文本的图(matplotlib)

332nm8kg  于 2023-06-23  发布在  其他
关注(0)|答案(2)|浏览(74)

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

我想在我的情节之外显示的文本:

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()
ovfsdjhp

ovfsdjhp1#

您可以使用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()

3hvapo4f

3hvapo4f2#

在我的例子中,我必须在一个文本框中显示某些额外的数据(图形的参数),类似于Matlab中的“Text outside area”。经过一些尝试和错误,我偶然发现了这个写得很好的答案here
答案的后处理部分真的很有帮助。plt.subplots_adjust为程序员提供了比plt.tight_layout更好的控制

相关问题