使用matplotlib从CSV文件绘制数据
我在处有一个CSV文件e:\dir1\datafile.csv
。它包含三列,并且需要跳过10条标题行和尾随行。我想用numpy.loadtxt()绘制它,但我没有找到任何严格的文档。
这是我从网上发现的几次尝试中开始写的。
import matplotlib as mplimport 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 npdata = 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