2

我有一个小问题。我有一个用浮点值填充的 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 来创建图像。结果是一团糟。它不像洪水地图。

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

4

1 回答 1

3

您只需将数据传递给matplotlib.pyplot.imshow(). 色标可以通过您选择的色图进行调整。假设您将数据保存在文本文件中:

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()
于 2014-09-21T10:00:20.717 回答