天天看點

多條資料取第一條_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基于資料檔案繪制其圖像基本繪制方法改良繪制方法小結:

多條曲線繪制

小結:

本文介紹了如何用存儲在檔案中的資料直接繪制其圖像的操作方法。在實際運用中,絕大多數繪制圖像的資料源都是存儲在某種格式的檔案中。是以,學會上述圖像繪制方法後,将有利于我們發揮其實際效用,特别是對于大型資料源。

歡迎大家關注交流,一起讨論學習!