我正在尝试绘制通过套接字接收的数据。我使用“Matplotlib”作为打印库,使用“cPickle”序列化python对象。
当我运行代码时,绘图窗口打开并挂断。我试过几种方法来避开它,但没有任何帮助
不知道这是否有帮助,但是…我正在Win7(64位)上使用“Python2.7-32位”。
这是我的代码
def init_plot():
matplotlib.pyplot.ion()
figsrc = matplotlib.pyplot.figure()
axsrc = figsrc.add_subplot(111, autoscale_on=True)
def plot(x,y,z=None):
if z == None:
pylab.plot(x,y)
else:
pylab.plot(x,y,z)
pylab.show();
def unserialize(data):
return pickle.loads(data)
def init_socket():
global UDPSock,buf
# Set the socket parameters
host = "localhost"
port = 21567
buf = 10240
addr = (host,port)
# Create socket and bind to address
UDPSock = socket(AF_INET,SOCK_DGRAM)
UDPSock.bind(addr)
if __name__ == '__main__':
init_plot()
init_socket()
while 1:
data,addr = UDPSock.recvfrom(buf)
temp = numpy.array(unserialize(data))
plot(temp[0,:],temp[1,:])
UDPSock.close()
客户端代码运行良好。 我不知道是32-64位的不兼容还是代码问题。在
谢谢。在
附言:我试过“pyfunc的”建议s.setblocking(flag)
和{
我想你只是需要改变一下皮拉布表演()至pylab.图纸()
相关问题 更多 >
编程相关推荐