31

に CSV ファイルがありますe:\dir1\datafile.csv。これには 3 つの列が含まれ、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()
4

2 に答える 2

46

ドキュメント による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は今ではかなりよく文書化されていると思います。docstringは、HTMLとしてレンダリングされたものを読みたい場合のように、内部から、ipythonまたはIDEを使用して簡単に検査できます。spider

于 2012-11-25T11:32:57.963 に答える
5

私は推測している

x= data[:,0]
y= data[:,1]
于 2012-11-24T21:05:46.410 に答える