#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):