Как построить данные из файла .csv, в котором есть данные из CAN-связи(он получает данные в 4 пакетах по 4 точки данных)

#python #csv #matplotlib #graph

Вопрос:

Формат файла .csv, как показано ниже, имеет промежутки между ними, поскольку он получает данные в пакетах. Я хочу построить данные с меткой времени по оси x и датчиком 1 по оси y, используя matplotlib в python, так что есть ли такая возможность.

Это данные в файле CSV, поэтому вы можете видеть 4 точки данных, полученные 4 раза, которые считываются в разные временные метки. Я попытался подойти обычным способом, но он показывает пустой участок.

Это ссылка на файл CSV. https://docs.google.com/spreadsheets/d/17SIabIYYmSogOdeYTzpEwy9s2pZuVO3ghoChSSgGwAg/edit?usp=sharing

заранее спасибо.

 import pandas as pd

import matplotlib.pyplot as plt

data =  pd.read_csv("cantype.csv")

X = data.time_stamp

Y = data.sensor1

# plt.plot(data.time_stamp,data.BMS_01_CellVolt01)

plt.plot(X,Y)

plt.show()
 

Данные

 time_stamp,sensor1,sensor2,sensor3,sensor4,sensor5,sensor6,sensor7,sensor8,sensor9,sensor10,sensor11,sensor12,sensor13,sensor14,sensor15,sensor16
1.37E 12,1.50465,1.50405,1.50435,1.5042,,,,,,,,,,,,
1.37E 12,,,,,1.47105,1.5042,1.5045,1.50435,,,,,,,,
1.37E 12,,,,,,,,,1.49115,1.49205,1.4961,1.49865,,,,
1.37E 12,,,,,,,,,,,,,1.50405,1.5042,1.50405,1.50435
1.37E 12,1.50465,1.50405,1.50435,1.5042,,,,,,,,,,,,
1.37E 12,,,,,1.47105,1.5042,1.5045,1.50435,,,,,,,,
1.37E 12,,,,,,,,,1.49115,1.49205,1.4961,1.49865,,,,
1.37E 12,,,,,,,,,,,,,1.50405,1.5042,1.50405,1.50435
 

Ответ №1:

Загрузите csv-файл с пандами:

 import pandas as pd
df = pd.read_csv('cantype.csv')
 

Затем либо используйте построение графиков панд:

 df.plot(x='time_stamp', y='sensor1', marker='.')
 

Или чистый matplotlib:

 import matplotlib.pyplot as plt
plt.plot(df.time_stamp, df.sensor1, marker='.')
 

С вашими образцовыми данными график не выглядит как значимый временной ряд, потому что есть только две ( timestamp , sensor1 ) точки, и обе расположены в (1.37 E 12, 1.50465):

пример вывода