Как читать текстовый файл и печатать с помощью matplotlib - PullRequest
1 голос
/ 29 марта 2019

Я впервые использую python и matplotlib, и я хотел бы построить данные из файла CSV.

Файл CSV имеет вид:

10/03/2018 00:00,454.95,594.86

с приблизительно 4000 строками.Я хотел бы вывести данные из второго столбца против даты и времени для каждой строки, а данные из третьего столбца против даты и времени для каждой строки на одном графике.

Это мой кодно это не работает:

import matplotlib.pyplot as plt
import csv
import datetime
import re
T = []
X = []
Y = []
with open('Book2.csv','r') as csvfile:
    plots = csv.reader(csvfile, delimiter=',')
    for row in plots:

        datetime_format = '%d/%m/%Y %H:%M'
        date_time_data = datetime.datetime.strptime(row[0],datetime_format)
        T.append(date_time_data)
        X.append(float(row[1]))
        Y.append(float(row[2]))

        plt.plot(T,X, label='second column data vs datetime')
        plt.plot(T,Y, label='third column data vs datetime')

        plt.xlabel('DateTime')
        plt.ylabel('Data')
        plt.title('Interesting Graph\nCheck it out')
        plt.legend()
        plt.show()

Любая помощь или руководство было бы здорово.Большое спасибо!:)

Ответы [ 3 ]

0 голосов
/ 29 марта 2019

Я надеюсь, что это поможет вам:

import csv
import numpy as np


a = []
with open('table.csv') as f:  # Let's say your data is at 'table.csv'
    f_csv = csv.reader(f)
    for row in f_csv:
        a.append(row)  # Get each line

b = np.array(a)  # Make it as a numpy array
c = b[:,[1,2]]  # Filter it by column

print(c)
0 голосов
/ 29 марта 2019
import matplotlib.pyplot as plt
import csv

x = []
y = []

with open('example.csv','r') as csvfile:
    plots = csv.reader(csvfile, delimiter=',')
    for row in plots:
        x.append(float(row[2]))
        y.append(float(row[3]))

plt.plot(x,y, label='Loaded from file!')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Interesting Graph\nCheck it out')
plt.legend()
plt.show()

не забудьте изменить имя файла в моем примере или указать правильный путь, если вы открываете файл из другого места, если ваш файл имеет значение с плавающей запятой, измените x.append (int (row [0])) на x .append (float (row [0])) и то же самое для y

0 голосов
/ 29 марта 2019

Вы можете использовать панды для чтения файла CSV

import pandas as pd

data = pd.read_csv('file_name.txt', header = None)

Оттуда вы можете использовать фрейм данных pandas в качестве входных данных для matplot. Хороший учебник можно найти здесь

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