我有一个包含网格矩阵的列表。 在我绘制这些之后,我想用不同的名称保护它们中的每一个。
game = []
start = []
while len(game)<=1000:
m = np.random.randint(0,3,(5,5))
m[random.randint(0,4)][random.randint(0,4)] = 4
num_zeros = (m == 0).sum()
num_ones = (m == 1).sum()
num_twos = (m == 2).sum()
if num_ones ==9 and num_twos ==8:
game.append(m), start.append(1)
elif num_ones ==8 and num_twos ==9:
game.append(m)
start.append(2)
num_zeros , num_ones, num_twos
我在绘图后尝试这个
colors = ['lightcyan','#6871E4','#E67CCC', 'black']
for i in range(len(game)):
plt.matshow(game[i],cmap=mpl.colors.ListedColormap(colors)) #[0,1,2,4])
plt.title('start', color = colors[start[i]],fontsize = 22)
for i in range(5):
plt.axhline(i+0.5, c = 'azure', linewidth=11)
for i in range(5):
plt.axvline(i+0.5, c = 'azure',linewidth=11)
plt.axhline(-0.5, c = 'azure', linewidth=11)
plt.axvline(-0.5, c = 'azure', linewidth=11)
plt.axvline(4.55, c = 'azure', linewidth=5)
plt.axis('off')
plt.savefig('game'+str(i)+'.png')
结果我只保存了图像 4 xD
谢谢!
答案 0 :(得分:0)
只需更改内部(嵌套)循环的循环变量即可。像这样:
colors = ['lightcyan','#6871E4','#E67CCC', 'black']
for i in range(len(game)):
print(i)
plt.matshow(game[i],cmap=mpl.colors.ListedColormap(colors)) #[0,1,2,4])
plt.title('start', color = colors[start[i]],fontsize = 22)
for j in range(5): #change i to j
plt.axhline(j+0.5, c = 'azure', linewidth=11)
for k in range(5): #change i to k
plt.axvline(k+0.5, c = 'azure',linewidth=11)
plt.axhline(-0.5, c = 'azure', linewidth=11)
plt.axvline(-0.5, c = 'azure', linewidth=11)
plt.axvline(4.55, c = 'azure', linewidth=5)
plt.axis('off')
print("saving"+'game'+str(i)+'.png')
plt.savefig('game'+str(i)+'.png')
现在您的内部循环不会覆盖您保存图像所用的 i
的实际值。