这个问题在这里已经有了答案:
2D grid data visualization in Python
(2 个回答)
3年前关闭。
我是 pyplot 的新手,无法找到将数组映射到彩色网格的正确解决方案。例如,如果我有一个 10x10 二维数组和 10x10 网格:
[[0,0,0,0,0,1,1,1,1,0],
[0,0,0,0,0,1,0,0,1,0],
[0,0,1,0,1,0,1,1,0,0],
[0,0,1,0,0,1,1,0,1,0],
[0,0,1,0,1,0,0,1,1,0],
[1,0,0,1,0,1,0,0,1,0],
[0,1,0,0,0,1,1,1,1,1],
[0,1,0,0,0,0,1,1,1,1],
[1,0,0,0,1,1,1,0,1,0],
[1,1,1,1,0,0,0,1,1,0]]
如果 0 和 1 分别是蓝色和红色,则网格应如下所示:
我怎样才能用 pyplot 做到这一点?
最佳答案
是的,您可以使用 imshow
[matplotlib-doc]为了这:
data = [
[0,0,0,0,0,1,1,1,1,0],
[0,0,0,0,0,1,0,0,1,0],
[0,0,1,0,1,0,1,1,0,0],
[0,0,1,0,0,1,1,0,1,0],
[0,0,1,0,1,0,0,1,1,0],
[1,0,0,1,0,1,0,0,1,0],
[0,1,0,0,0,1,1,1,1,1],
[0,1,0,0,0,0,1,1,1,1],
[1,0,0,0,1,1,1,0,1,0],
[1,1,1,1,0,0,0,1,1,0]
]
import matplotlib.pyplot as plt
plt.imshow(data)
plt.show()
所以你只需将二维列表传递给
imshow()
,这将生成以下图像:如文档中所述,您可以使用另一个颜色图为
0
使用其他颜色。和 1
, 例如:plt.imshow(data, cmap=plt.cm.bwr)
将产生相同的数据,但具有蓝白红颜色图:
关于Python - 使用 pyplot 将二维数组映射到网格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52566969/