Python 从tcp数据使用Matplotlib打印

Python 从tcp数据使用Matplotlib打印,python,matplotlib,plot,Python,Matplotlib,Plot,我正在尝试用python绘制一些东西。我有传入的数据,这些数据在每次迭代中都会更新一个浮点变量。我想用matplotlib绘制它与时间的关系。这就是我被困的地方 import socket import sys socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) socket.bind(('', 5027)) socket.listen(5) client, address = socket.accept() print("{}

我正在尝试用python绘制一些东西。我有传入的数据,这些数据在每次迭代中都会更新一个浮点变量。我想用matplotlib绘制它与时间的关系。这就是我被困的地方

import socket
import sys

socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.bind(('', 5027))
socket.listen(5)
client, address = socket.accept()
print("{} connected".format( address ))
while True:
    response = client.recv(512)   
    print(response)
print ("close")
client.close()
stock.close()
response是字符串变量

import matplotlib.pyplot as plt
import numpy as np
import math

body = '+1.33E+00@-6.54E+00@1.00E+00@-6.53E+00@'
one, two, three, four, five = body.split("@")
signal_1 = float(one)
signal_2 = float(two)
signal_3 = float(three)
signal_4 = float(four)
# Plot
t = 5
plt.plot(t, signal_1,t, signal_2,t, signal_3,t, signal_4,)
plt.show()
body
是第一个代码中响应变量的模拟信号。我想绘制
信号_1
相对于时间的值。
请帮助我

每个要绘制的序列只有一个数据点,例如,第一个数据点是
(5,1.33)

plt.plot
命令是线图。但是,连接单点与自身的直线仍不可见

一种可能的解决方案是设置一个标记(
marker=“o”
)以在相应的坐标处显示

plt.plot(t, signal_1,t, signal_2,t, signal_3,t, signal_4, marker="o")
当然,你也可以选择不同的标记作为相应的点

plt.plot(t, signal_1, "ko", t, signal_2, "bs", t, signal_3, "rd", t, signal_4, "y^")

要绘制的每个系列只有一个数据点,例如,第一个数据点是
(5,1.33)

plt.plot
命令是线图。但是,连接单点与自身的直线仍不可见

一种可能的解决方案是设置一个标记(
marker=“o”
)以在相应的坐标处显示

plt.plot(t, signal_1,t, signal_2,t, signal_3,t, signal_4, marker="o")
当然,你也可以选择不同的标记作为相应的点

plt.plot(t, signal_1, "ko", t, signal_2, "bs", t, signal_3, "rd", t, signal_4, "y^")

谢谢,我如何更新图表的时间,例如每秒10点?您可以使用交互模式或
FuncAnimation
。有很多例子,例如。我建议你尝试一下,如果你被卡住了,可以问一个新问题,并附上问题的答案。谢谢。但我想画一条线,而不是一个点。i、 e.每次用新值更新信号_1时,它都会连接到上一个点。这需要将所有以前的值存储在一个列表中,如
signal_1=[]
,然后在每个步骤中
signal_1.append(float(one))
。但是,它应该具有与时间数组相同的大小。谢谢,如何根据时间(如每秒10点)更新图形?您可以使用交互模式或
FuncAnimation
。有很多例子,例如。我建议你尝试一下,如果你被卡住了,可以问一个新问题,并附上问题的答案。谢谢。但我想画一条线,而不是一个点。i、 e.每次用新值更新信号_1时,它都会连接到上一个点。这需要将所有以前的值存储在一个列表中,如
signal_1=[]
,然后在每个步骤中
signal_1.append(float(one))
。但是,它应该与时间数组具有相同的大小。