我正在尝试用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
是第一个代码中响应变量的模拟信号。我想根据时间绘制signal_1
的值。
请帮助我!
答案 0 :(得分:0)
要绘制的每个系列只有一个数据点,例如第一个是(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^")