使用来自tcp数据的Matplotlib绘图

时间:2017-09-06 09:01:19

标签: 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("{} 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的值。 请帮助我!

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^")