python matplotlib.pyplot.arrow仅是第一次显示

我想通过使用pyplot.arrow实时通过套接字通信绘制接收到的数据。

我正在尝试,但是所需的结果仅在第一次显示。

下次没有显示箭头。 这是我尝试的代码。请帮助我:)

HOST='192.168.0.9'
PORT=8604

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((HOST,PORT))

s.listen(1)
conn,addr=s.accept()

os.getcwd()
os.chdir("/home/pi/smartroad")

im = imread('/home/pi/smartroad/background.png')

ax = plt.axes()

plt.xlim(0,746)
plt.ylim(0,372)

beacon1 = [40,60]  #1번 비콘 아래
beacon1_2 = [40,80] #1번 비콘 위
beacon2 = [375,295] #2번 비콘 왼쪽
beacon2_2 = [430,295] #2번 비콘 오른쪽
beacon3 = [643,80] #3번 비콘 위쪽
beacon3_2 = [640,60] #3번 비콘 아래쪽

def job():  #일정시간 마다 실행하는 함수
    b = data.split("*") #구분기호 * 로 앞뒤를 나눈다
    a = []  #배열 선언

    for i in range(len(b) - 1): 
        if(b[i]!=None):
            a.append(b[i])     

    print(data)

    if(int(a[0]) == 1): #처음 인식장소가 1번 비콘에서 시작

        if(int(a[1]) == 2): #다음 인식장소가 2번 비콘일 때 (1 -> 2)

            if(len(a) < 3): #비콘 구역 개수가 2개일 때 화살표와 현재 시간 출력

                ax.arrow(beacon1_2[0],beacon1_2[1],beacon2[0] - beacon1_2[0] - 5,beacon2[1] beacon1_2[1] - 5,head_width=15,head_length=15,fc='lightblue',ec='lightblue')
                plt.text(beacon2[0] - 30,beacon2[1] + 40,b[2],color='#00C8FF',size=8)

            elif(len(a) == 3): #비콘 구역 개수가 3개일 때 화살표와 현재 시간 출력

                if(int(a[2]) == 1): #그 다음 인식장소가 1번 비콘일 때 (1 -> 2 -> 1)
                    ax.arrow(beacon1_2[0] - 3,beacon1_2[1] + 3,beacon2[0] - beacon1_2[0] - 3,beacon2[1] - beacon1_2[1] + 3,head_width=10,head_length=10,ec='lightblue')
                    ax.arrow(beacon2[0] + 3,beacon2[1] - 3,beacon1_2[0] - beacon2[0] + 3,beacon1_2[1] - beacon2[1] - 3,fc='#ff6f6d',ec='#ff6f6d')
                    plt.text(beacon1[0] + 20,beacon1[1] - 55,b[3],size=8)

    plt.imshow(im) 
    img=plt.gcf() 

    img.savefig('mia.jpg')
    plt.show()

schedule.every(10).seconds.do(job) #job()함수를 10초마다 실행

while 1:
    data = conn.recv(1024)  #데이터를 받아들임
    schedule.run_pending()

c.close()

enter image description here

w0werzs 回答:python matplotlib.pyplot.arrow仅是第一次显示

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3162620.html

大家都在问