使用matplotlib从CSV文件绘制数据

我在处有一个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()

回答:

根据文档

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的文档字符串一样。

以上是 使用matplotlib从CSV文件绘制数据 的全部内容, 来源链接: utcz.com/qa/400639.html

回到顶部