Python 使用matplotlib从CSV文件打印数据

Python 使用matplotlib从CSV文件打印数据,python,numpy,matplotlib,Python,Numpy,Matplotlib,我在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):

我在
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()
我猜

x= data[:,0]
y= data[:,1]
根据
numpy.loadtxt
is

简单格式化文件的快速读取器。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现在已经有了很好的记录。如果您喜欢阅读以HTML格式呈现的文档字符串,您可以从内部或使用IDE轻松地检查文档字符串。

或者,
x,y=data[:,:2].T
(甚至
x,y,third_column=data.T
if
data
将始终有3列)。感谢您提供的信息。我下载了numpy参考手册;它有我需要的关于genfromtxt的所有信息。很高兴听到。在Stackoverflow上,如果答案对您有用,您通常会向上投票(可能会留下评论),并且/或者如果您的问题得到回答,您会接受答案。相关