我在e:\dir1\datafile.csv
有一个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()
答案 0 :(得分:39)
根据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
内或使用像spider
这样的IDE轻松检查文档字符串,如果您希望将它们呈现为HTML格式。
答案 1 :(得分:4)
我在猜测
x= data[:,0]
y= data[:,1]