Подтвердить что ты не робот

Данные участка из файла CSV с matplotlib

У меня есть файл CSV в e:\dir1\datafile.csv. Он содержит три столбца и 10 заголовков, а завершающие строки должны быть пропущены. Я хотел бы построить его с помощью numpy.loadtxt(), для которого я не нашел строгой документации.

Вот что я начал писать из нескольких попыток, которые я нашел в Интернете.

import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cbook as cbook

def read_datafile(file_name):
    # the skiprows keyword is for heading, but I don't know if trailing lines
    # can be specified
    data = np.loadtxt(file_name, delimiter=',', skiprows=10)
    return data

data = read_datafile('e:\dir1\datafile.csv')

x = ???
y = ???

fig = plt.figure()

ax1 = fig.add_subplot(111)

ax1.set_title("Mains power stability")    
ax1.set_xlabel('time')
ax1.set_ylabel('Mains voltage')

ax1.plot(x,y, c='r', label='the data')

leg = ax1.legend()

plt.show()
4b9b3361

Ответ 1

В соответствии с docs numpy.loadtxt находится

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

поэтому есть несколько вариантов обработки более сложных файлов. Как уже упоминалось, numpy.genfromtxt имеет больше опций. Например, вы можете использовать

import numpy as np
data = np.genfromtxt('e:\dir1\datafile.csv', delimiter=',', skip_header=10,
                     skip_footer=10, names=['x', 'y', 'z'])

чтобы прочитать данные и назначить имена столбцам (или прочитать строку заголовка из файла с помощью names=True), а затем построить его с помощью

ax1.plot(data['x'], data['y'], color='r', label='the data')

Я думаю, что numpy довольно хорошо документирован. Вы можете легко проверить докстроки из ipython или с помощью IDE, например spider, если вы предпочитают читать их, отображаемые как HTML.

Ответ 2

Я предполагаю

x= data[:,0]
y= data[:,1]