显示 / 隐藏 文章目录 ]

自动处理测试数据

上次更新: 2024-02-02 20:44:01

自动处理测试数据

Chose___B调试机器人PID的时候发现vex返回数据只能通过终端输出
这实在是太不便于分析数据了
写了一下程序来把数据转excel

python 版本

import pandas as pd
with open('data1.txt', 'r', encoding='utf-8') as f:
    data0 = f.readlines()
    title = data0[0].strip('\n').split()
    data0.pop(0)
    for i in range(len(data0)):
        data0[i] = list(map(int,data0[i].strip('\n').split()))
    df = pd.DataFrame(data0,columns=title)
    print(df)
    df.to_excel("data2.xlsx",index=False)

不过ChoseB觉得这样还要打开excel才可以看图,实在麻烦
又魔改了一下,直接用matplotlib.pyplot画图

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

with open('data.txt', 'r', encoding='utf-8') as f:
    data0 = f.readlines()
    title = data0[0].strip('\n').split()
    data0.pop(0)
    for i in range(len(data0)):
        data0[i] = list(map(float,data0[i].strip('\n').split()))
    df = pd.DataFrame(data0,columns=title)
    #把原始数据转化为DataFrame
    df = df.groupby( title[1] , as_index=False).agg("mean")
    #去除重复数据,让图像更平滑

    plt.figure(figsize=(8,4))
    plt.xlabel(title[0])
    plt.ylabel("value")
    str_title = "Image of "
    for i in title[1::]:
        if len(str_title)!=9:
            str_title += ','
        str_title += i
    str_title += " with respect to "
    str_title += title[0]
    plt.title(str_title)
    for i in range(1,len(title)):
        plt.plot( list(df[ title[0] ]) , list(df[ title[i] ]) , label= title[i])
        pass
    plt.legend()
    plt.show()
    #图像输出

效果如下图

图表数据

time    x       speed
1       0       100
41      0.4     100
70      9.2     100
80      16      100
90      25.6    100
101     36.4    100
110     44.4    100
121     51.2    100
130     58.4    100
140     66      100
150     74      100
161     81.6    100
170     90      100
181     98      100
190     107.2   100
200     117.2   100
210     127.6   100
220     138.4   100
230     149.2   100
240     160     100
250     170.8   100
260     182     100
271     193.2   100
280     204.4   100
290     215.6   100
300     226.8   100
310     238     100
321     249.2   100
330     260.8   100
341     272.4   100
351     284     100
360     295.6   100
370     307.2   100
380     318.8   100
391     324.8   100
400     336.4   100
411     348     100
412     348     100
420     359.6   100
430     371.2   100
440     382.8   100
450     394.4   100
460     406     100
471     417.2   100
481     428.8   100
491     440.4   100
500     451.6   100
510     463.2   100
520     474.8   100
530     486.4   100
540     498     100
550     509.6   100
560     521.2   100
570     533.2   100
581     544.4   100
590     556     100
600     567.6   100
610     579.6   100
620     590.8   100
630     602.4   100
640     614     100
650     625.6   100
660     637.2   100
671     648.8   100
681     660.4   100
690     672     100
701     683.6   100
710     695.6   100
721     707.2   100
731     719.2   100
740     730.8   100
750     742.4   100
760     754     100
770     765.2   100
780     776.4   100
790     788     100
800     799.6   100
810     811.6   100
820     822.8   100
831     834     99.6
841     845.2   92.88
851     857.2   85.68
861     868.4   78.96
871     880     72
882     891.6   65.04
891     903.6   57.84
901     915.2   50.88
911     926.8   43.92
921     938.4   36.96
931     949.6   30.24
941     961.2   23.28
951     972.4   16.56
961     983.6   9.84002
971     994     3.6
980     1003.6  3.6

重拾纯粹的写作