Matplotlib Читайте во времени как значение из CSV - PullRequest
0 голосов
/ 22 марта 2020

Я новичок в python кодировании, но играю некоторое время. Я создаю считывающее устройство, которое получает показания усилителя с моего автоматического выключателя и хочу отобразить его на графике.

Я пытаюсь отобразить дату из CSV-файл с использованием matplotlib. Я читаю в CSV-файле, как это: (это небольшой пример, я беру чтение каждую минуту)

03:59:01,1,0.000,2,0.000,3,0.000,4,0.622,
04:00:01,1,12.000,2,0.000,3,0.000,4,0.627,

Я только смотрю в столбце 0 (время) и столбце 3 (значения), я знаю время не является INT, поэтому оно не будет импортировано IE: я получаю

ValueError: invalid literal for int() with base 10: '03:59:55'

Как я могу преобразовать его, когда он читает, так что я могу?

import matplotlib.pyplot as plt
import numpy as np
import csv
x = []
y = []
# read in file  columns 0 and 2
with open('bob1.csv','r') as csvfile:
    plots = csv.reader(csvfile, delimiter=',')
    next(plots)
    for row in plots:
        x.append(int(row[0]))
        y.append(float(row[2]))

plt.plot(x,y, label='Loaded from file!')
plt.savefig('test7.png',dpi=720)

Я выполнил базовый c поиск в Google, но ничего не читалось, чтобы помочь в том, что я делал. Я знаю множество причин, чтобы сделать это. Поэтому, если у кого-то есть время и он хотел бы помочь мне улучшить этот код, я был бы очень признателен.

Спасибо

1 Ответ

0 голосов
/ 22 марта 2020

Вы можете попробовать что-то вроде следующего кода:

import matplotlib.pyplot as plt
import pandas as pd

csv_data = pd.read_csv('bob1.csv', index_col= 'Time')
data = pd.DataFrame(csv_data)

plt.xlabel('Time')
wathever = plt.plot(data['Unnamed: 1'], 'k', label='')
plt.title('')
plt.legend(title='')
plt.show(block=True)

Добавить строку с текстом, который будет вашим индексом. Затем index_col= 'Time', Время - это текст, который я добавил как метку во временном ряду. Если вы не добавите имя в остальные столбцы, Автоматически pandas будет считать Unnamed: number. Вы также можете добавить имя для столбца, а затем вместо 'Unnamed:1' добавить имя столбца.

Например, если вы создаете следующий df:

enter image description here

Что означает:

Time,A,B,C,D,E,F,G,H
03:59:01,1,0,2,0,3,0,4,0.62
04:00:01,1,12,2,0,3,0,4,0.63

Затем вместо 'Unnamed: 1' необходимо ввести 'A'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...