生活随笔
收集整理的這篇文章主要介紹了
温度矩阵转热图
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
溫度矩陣為640*480的csv文件
代碼竟然簡單到起飛!cmap=plt.cm.xxx可以改變熱圖的著色形式,常用jet、gray、不設默認rgb
熱圖顏色匯總
import pandas
as pd
import matplotlib
.pyplot
as pltdata
= pd
.read_csv('matrix.csv', encoding
='utf-8', header
=None
).valuesplt
.imsave("matrix_gray.jpg", data
, cmap
=plt
.cm
.gray
)
資源:
Python讀取txt文件方法的速度對比和改進方案
plt.imsave、plt.savefig
python保存圖片的常用方法
附:matrix.csv在評論區
反思:
開始我這樣寫文件讀文件,好幾分鐘,因為看到網上用txt文件保存溫度矩陣,就把csv轉成了txt又嫁接了博主的代碼,其實我這樣還是有點死腦筋了,上面只用兩行不香嗎?
import numpy
as np
import matplotlib
.pyplot
as plt
import pandas
as pd
import datetimedef
csv2txt(src
,dst
):data
= pd
.read_csv(src
, encoding
='utf-8', header
=None
)#
print(np
.shape(data
.values
))with open(dst
, 'w', encoding
='utf-8') as f:for line
in data
.values
:line
= [str(i
) for i
in line
]f
.write(','.join(line
)+',\n')def
get_data(src_
):"""速度超慢不用txt轉成同樣shape的numpy array
:param src_
: 溫度矩陣的txt文件
:return: numpy array
"""start
= datetime
.datetime
.now()f
= open(src_
)val_list
= f
.readlines()lists
= []data_
= None
for string
in val_list:string
= string
.split(',')lists
.append(string
[:-1])data_
= np
.array(lists
).astype(float
)stop
= datetime
.datetime
.now()print('讀取txt耗時:', stop
-start
)return data_def
draw_thermal(data
, dst
):"""繪制熱圖 plt
.savefig(filename
,dpi
)可以添加比色條、操作刻度等
:param data
: 矩陣
:param dst
: 熱圖存儲路徑
"""plt
.figure()plt
.imshow(data
, interpolation
='nearest', cmap
=plt
.cm
.jet
) # 對圖片進行處理:最近鄰插值,藍
-青
-黃
-紅plt
.colorbar()plt
.xticks(())plt
.yticks(())plt
.savefig(dst
)# plt
.show() # 顯示圖片,必須放到plt
.savefig后面,否則保存的為空白圖片plt
.close()if __name__
== '__main__':start
= datetime
.datetime
.now()# csv轉txt
csv2txt('matrix.csv','matrix.txt')# 讀取txt文件data
= get_data('matrix.txt')# 繪制熱圖
draw_thermal(data
, "img/matrix.jpg")stop
= datetime
.datetime
.now()print(stop
- start
)
總結
以上是生活随笔為你收集整理的温度矩阵转热图的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。