with Python, pandas and matplotlib
import serial
import pandas as pd
import matplotlib.pyplot as plt
ser = serial.Serial('COM4', '115200', timeout = 0.5)
print(ser.name)
serialCmd = b'WIN\r'
readSize = 17
loop = True
freq = ""
win = 0
data = []
try:
while (loop == True):
ser.write(serialCmd)
result = ser.read(readSize)
res = str(result)
if (len(res) > 15):
i = res.find(",")
j = res.find(",", i + 1)
if ((i != -1) and (j != -1)):
freq = res[j + 1:j + 9]
win = int(res[i + 1:i + 4])
i = -1
b = False
for x in data:
i = i + 1
if (x[0] == freq):
data[i][1] = win
b = True
break
if (b == False):
data.append([freq, win])
except KeyboardInterrupt:
loop = False
ser.close()
df = pd.DataFrame(data, columns = ['Frequency', 'Window voltage'])
df = df.sort_values('Frequency')
plt.xlabel("Frequency")
plt.ylabel("Window voltage")
plt.bar('Frequency', 'Window voltage', data = df, width = 0.5)
plt.show()
Kommentit
Tämän blogin kommentit tarkistetaan ennen julkaisua.