2014-09-21 217 views
2

我有一個令人討厭的問題。我有一個用浮點值填充的numpy數組。背景是數組的值表示正方形網格的水深。將Numpy數組轉換爲圖像

345.34 888.78 999.35 
300.00 98.00 88.45 
440.89 423.56 11.68 

我想將此數組轉換/保存爲圖像。因此,值的範圍應該用一種顏色表示。

"dark blue" "midnight blue" "midnight blue"  #00008B #191970 #191970 
"dark blue" "medium blue" "medium blue" or #00008B #0000CD #0000CD 
"navy"  "navy"   "blue"    #000080 #000080 #0000FF 

我通過保存數組爲ASCII文件,並在ArcGIS轉換成柵格地圖規避這個問題,但我想避免的ArcGIS,因爲我有太多的陣列/地圖做手工。

我的嘗試是通過掩碼用整數替換一系列值。然後我將替換的浮點值轉換爲字符串,並用RGB顏色代碼替換字符串。我最終使用Image.fromarray來創建一個圖像。結果是一團糟。它不像一張淹沒地圖。

我希望有人知道一個可行的方法。

回答

2

你可以簡單地將你的數據傳遞給matplotlib.pyplot.imshow()。色標可以是您選擇的adjusted by the color map。假設您將數據保存在文本文件中:

import numpy as np 
import matplotlib.cm as cm 
import matplotlib.pyplot as plt 

data = np.loadtxt('data.txt') 
plt.imshow(data, cmap=cm.Blues) 
plt.show() 
+0

我知道有這樣的事情。大! – Scrox 2014-09-21 13:25:03