天天看点

多条数据取第一条_matplotlib基于数据文件绘制其图像基本绘制方法改良绘制方法小结:

先前,我们已经介绍过 matplotlib 第三方绘图库的基本操作方法。

这里,我们将介绍如何通过读取文件中的数据来绘制其图像的操作方法。

基本绘制方法

假设要绘制的数据存储在名为 sample.txt 的文件中,如下所示:

多条数据取第一条_matplotlib基于数据文件绘制其图像基本绘制方法改良绘制方法小结:

sample.txt 存储数据内容

1 import matplotlib.pyplot as plt 2  3 X, Y = [], [] 4 for line in open('sample.txt', 'r'): 5     values = [float(s) for s in line.split()] 6     X.append(values[0]) 7     Y.append(values[1]) 8  9 plt.plot(X, Y)10 plt.show()
           

上述代码:

#4 只读方式打开文件,以行为单位读取。

#5 分离每行数据并存储在列表中,其中 split 函数调用格式如下:

str.split(str="", num=string.count(str))
           

参数:

str -- 分隔符,默认为所有的空字符,包括空格、换行()、制表符()等。

num -- 分割次数,默认为 -1, 即分隔所有。

返回值:

返回分割后的字符串列表。

#6 存储分离得到的 X 坐标数据。

#7 存储分离得到的 Y 坐标数据。

多条数据取第一条_matplotlib基于数据文件绘制其图像基本绘制方法改良绘制方法小结:

sample.txt 文件数据绘制图像

上述操作是基于 Python 基本方法进行读取文件数据和绘制图像的。事实上,这样做无法处理一些可能出现的错误现象,从编程角度来看,是不严谨的。此外,matplotlib 还通常与 numpy 进行结合使用,进行处理用于绘制图像的数据源。

改良绘制方法

1 import numpy2 import matplotlib.pyplot as plot3 4 data = numpy.loadtxt('sample.txt')5 6 plot.plot(data[:,0], data[:,1])7 plot.show()
           

上述代码:

#4 numpy.loadtxt( )函数读取文件后,返回的是一个二维数组,类型上是矩阵。这就有利于我们能够方便地通过矩阵行、列的概念来分别获得 x、y 坐标的数值(#6 (data[:,0], data[:,1]))。

相较前面,上述代码更加简洁,而且,运用 numpy 后还能够快速处理大型数据文件,并且可以支持其它数据文件格式(诸如 CSV、matlab 等)。

此外,上述代码还可以支持类似如下情况中的多条曲线绘制任务:

比如,当文件中包含有 N 列数据时,即绘制 N-1 条曲线。第一列即为 x 坐标数值,第二列即为第一条曲线的 y 坐标数值;第三列即为第二条曲线的 y 坐标数值;以此类推……

示例:

假设此时数据文件中包含如下内容:

多条数据取第一条_matplotlib基于数据文件绘制其图像基本绘制方法改良绘制方法小结:

sample.txt 数据文件存储内容

1 import numpy2 import matplotlib.pyplot as plot3 4 data = numpy.loadtxt('sample.txt')5 6 for column in data.T:7     plot.plot(data[:,0], column)8 9 plot.show()
           

上述代码:

#6 通过 data.T 矩阵转置(列→行)后读取的“行”即为原始矩阵的“列”。

#7 绘制多条曲线。

多条数据取第一条_matplotlib基于数据文件绘制其图像基本绘制方法改良绘制方法小结:

多条曲线绘制

小结:

本文介绍了如何用存储在文件中的数据直接绘制其图像的操作方法。在实际运用中,绝大多数绘制图像的数据源都是存储在某种格式的文件中。因此,学会上述图像绘制方法后,将有利于我们发挥其实际效用,特别是对于大型数据源。

欢迎大家关注交流,一起讨论学习!