先前,我們已經介紹過 matplotlib 第三方繪圖庫的基本操作方法。
這里,我們將介紹如何通過讀取文件中的數據來繪制其圖像的操作方法。
python圖像處理庫。假設要繪制的數據存儲在名為 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 只讀方式打開文件,以行為單位讀取。
matplotlib保存圖片、#5 分離每行數據并存儲在列表中,其中 split 函數調用格式如下:
str.split(str="", num=string.count(str))
參數:
str -- 分隔符,默認為所有的空字符,包括空格、換行()、制表符()等。
matplotlib輸出圖片。num -- 分割次數,默認為 -1, 即分隔所有。
返回值:
返回分割后的字符串列表。
python圖像處理opencv。#6 存儲分離得到的 X 坐標數據。
#7 存儲分離得到的 Y 坐標數據。
上述操作是基于 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()
matplotlib中文教程。上述代碼:
#4 numpy.loadtxt( )函數讀取文件后,返回的是一個二維數組,類型上是矩陣。這就有利于我們能夠方便地通過矩陣行、列的概念來分別獲得 x、y 坐標的數值(#6 (data[:,0], data[:,1]))。
相較前面,上述代碼更加簡潔,而且,運用 numpy 后還能夠快速處理大型數據文件,并且可以支持其它數據文件格式(諸如 CSV、matlab 等)。
此外,上述代碼還可以支持類似如下情況中的多條曲線繪制任務:
比如,當文件中包含有 N 列數據時,即繪制 N-1 條曲線。第一列即為 x 坐標數值,第二列即為第一條曲線的 y 坐標數值;第三列即為第二條曲線的 y 坐標數值;以此類推……
示例:
假設此時數據文件中包含如下內容:
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 繪制多條曲線。
本文介紹了如何用存儲在文件中的數據直接繪制其圖像的操作方法。在實際運用中,絕大多數繪制圖像的數據源都是存儲在某種格式的文件中。因此,學會上述圖像繪制方法后,將有利于我們發揮其實際效用,特別是對于大型數據源。
歡迎大家關注交流,一起討論學習!
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态