我正在嘗試使用 python 處理衛星圖片。總而言之,我有兩個大矩陣(3000 行 - 16 列),它們顯示值在 [0-100] 之間的衛星資訊。我希望每個矩陣都用特定的顏色表示。
這是我所做的:
plt.imshow(viz, cmap='Blues',vmax=100,aspect='auto')
plt.imshow(viz1, cmap='Reds',vmax=100,aspect='auto')
plt.show()
viz 和 viz1 看起來像:
[(100,0,100,45 ...
.. .. .. .. ..
0 , 23 , 65 , ...)]
[編輯] 我的兩個矩陣是衛星圖片。一個是早上,另一個是晚上。目的是發現差異
[編輯] 問題是有時在 viz 上我會有一個 0 值,如果我用 wiz1 減去它將是負數。我嘗試了絕對差異,但后來我丟失了數字的資訊,例如我想看到紅色和藍色中的 viz 1沒有改變的值以及橙色中改變的值
uj5u.com熱心網友回復:
如果目的是發現兩個影像之間的差異,為什么不使用imshow繪制兩個矩陣相減的結果:
mat_diff=viz-viz1
plt.imshow(mat_diff,aspect='auto')
如果您對絕對差異感興趣:
mat_abs_diff=abs(viz-viz1)
plt.imshow(mat_abs_diff,aspect='auto')
uj5u.com熱心網友回復:
再試一次。您可以做的是使用函式中的alpha引數imshow并使用它來查看疊加的兩個影像。在下面的代碼中,我繪制了兩個陣列。第一個是單位矩陣,第二個是fliplr單位矩陣的版本(對角線)。最重要的是,我設定元素mat_2[0,0]=1以顯示兩個陣列重疊時的外觀。這是玩具示例中的樣子:
import numpy as np
import matplotlib.pyplot as plt
N_dim=10
#Creating the two images
#mat_1 is the identity matrix
mat_1=np.diag(N_dim*[1])
#mat_2 is the fliplr version of mat_1 (opposite diagonal)
mat_2=np.diag(N_dim*[1])
#And to create artificial overlap between mat_1 and mat_2, I set the first element [0,0] of mat_2 equal to 1
mat_2=np.fliplr(mat_2)
mat_2[0,0]=1
#imshow with alpha=0.5 to see both images
plt.imshow(mat_1,cmap='Reds',aspect='auto',alpha=0.5)
plt.imshow(mat_2,cmap='Blues',aspect='auto',alpha=0.5)
plt.show()
輸出給出:

第一個陣列顯示為紅色,第二個顯示為藍色,混合物顯示為紫色。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/350096.html
標籤:Python matplotlib 矩阵 图表 显示
