Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在matplotlib中从项目为类的二维numpy数组中创建网格_Python_Arrays_Numpy_Matplotlib_Grid - Fatal编程技术网

Python 如何在matplotlib中从项目为类的二维numpy数组中创建网格

Python 如何在matplotlib中从项目为类的二维numpy数组中创建网格,python,arrays,numpy,matplotlib,grid,Python,Arrays,Numpy,Matplotlib,Grid,我正在处理一个n维的2D NumPy数组,其中的项是一个状态为1或0的类正方形。我不想创建一个包含类的int值的新数组,那么有没有办法将数组映射到彩色网格 import numpy as np from random import randrange class Square(): def __init__(self, state, pos): self.state = state self.pos = pos self.adj_sqs

我正在处理一个n维的2D NumPy数组,其中的项是一个状态为1或0的类正方形。我不想创建一个包含类的int值的新数组,那么有没有办法将数组映射到彩色网格

import numpy as np
from random import randrange

class Square():
    def __init__(self, state, pos):
        self.state = state
        self.pos = pos
        self.adj_sqs = []
        self.optimal_sq = []

        
    def __repr__(self):
        return str(self.state)

dim = 10
grid = np.array([[Square(randrange(2), [x,y]) for y in range (dim)] for x in range(dim)])

您可以通过
np.array([[Square(…).state for y in…]for x in…]直接创建数字数组)
。或者变换正方形
s
数组的每个元素以获得其
状态

从matplotlib导入pyplot作为plt
从matplotlib.colors导入ListedColormap
将numpy作为np导入
从随机输入范围
类Square():
定义初始化(自身、状态、位置):
self.state=状态
self.pos=pos
self.adj_sqs=[]
自优化_sq=[]
定义报告(自我):
返回str(self.state)
尺寸=10
grid=np.数组([[Square(randrange(2),[x,y])表示范围内的y(dim)]表示范围内的x(dim)])
grid\u np=np.数组([[grid[x,y].范围内y的状态(dim)]范围内x的状态(dim)])
plt.pcolor(np.arange(-0.5,dim),np.arange(-0.5,dim),grid_np,cmap=列表颜色图(['crimson','turquoise']))
plt.gca().set_aspect('equal')#将正方形显示为正方形
plt.xticks(范围(尺寸))
plt.yticks(范围(尺寸))
plt.show()

数组中包装
正方形列表不会给您带来任何好处。列表没有
state
属性,数组也没有。我将其包装到数组中,因为我在代码后面使用了Numpy方法和函数。