2013-11-11 5 views
1

У меня есть 2 точки (вектор размером 8) и 3 разных побитовых операции (И, Или, Xor) Я отобразил каждую точку и результат побитовых операций на 2D-график. теперь я хочу показать сами реальные данные точек и результат операции рядом с графиком (в зависимости от графика или выше графика (когда это возможно или это лучше)), поэтому позже, когда я хочу проанализировать результат, я могу легко читать данные , сейчас мой образ, как это, и вы можете увидеть легенду отрезан и у меня нет места за пределами участка, чтобы написать что-нибудь:рисовать участок с большим количеством текста за его пределами (matplotlib)

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

ответ

5

Вы можете использовать add_axes непосредственно контролировать размер и расположение ваших осей и то и se 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

+2

Также см http://stackoverflow.com/questions/18769870/matplotlib-wxpython-not-sizing-correctly-with-legend/18771068#18771068 для некоторого кода, который будет автоматическое изменение размера – tacaswell

Смежные вопросы