python圖像處理庫,圖像 存儲csv_matplotlib基于數據文件繪制其圖像

 2023-10-05 阅读 19 评论 0

摘要:先前,我們已經介紹過 matplotlib 第三方繪圖庫的基本操作方法。這里,我們將介紹如何通過讀取文件中的數據來繪制其圖像的操作方法。基本繪制方法python圖像處理庫。假設要繪制的數據存儲在名為 sample.txt 的文件中,如下所示:sample.txt 存儲數據

先前,我們已經介紹過 matplotlib 第三方繪圖庫的基本操作方法。

這里,我們將介紹如何通過讀取文件中的數據來繪制其圖像的操作方法。

基本繪制方法

python圖像處理庫。假設要繪制的數據存儲在名為 sample.txt 的文件中,如下所示:

7503fecf091873d98a34b83b470919ca.png

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 坐標數據。

2eb9340872abf281f0f33ce99d0bee9a.png

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()

matplotlib中文教程。上述代碼:

#4 numpy.loadtxt( )函數讀取文件后,返回的是一個二維數組,類型上是矩陣。這就有利于我們能夠方便地通過矩陣行、列的概念來分別獲得 x、y 坐標的數值(#6 (data[:,0], data[:,1]))。

相較前面,上述代碼更加簡潔,而且,運用 numpy 后還能夠快速處理大型數據文件,并且可以支持其它數據文件格式(諸如 CSV、matlab 等)。

此外,上述代碼還可以支持類似如下情況中的多條曲線繪制任務:

比如,當文件中包含有 N 列數據時,即繪制 N-1 條曲線。第一列即為 x 坐標數值,第二列即為第一條曲線的 y 坐標數值;第三列即為第二條曲線的 y 坐標數值;以此類推……

示例:

假設此時數據文件中包含如下內容:

905a1780f238b7261b1e6b5086098629.png

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 繪制多條曲線。

4f0e7b7695efaa09a133099bef4617b4.png

多條曲線繪制

小結:

本文介紹了如何用存儲在文件中的數據直接繪制其圖像的操作方法。在實際運用中,絕大多數繪制圖像的數據源都是存儲在某種格式的文件中。因此,學會上述圖像繪制方法后,將有利于我們發揮其實際效用,特別是對于大型數據源。


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

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/114140.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息