我想在matplotlib上绘制矩形,每个图层应该有不同的颜色:
我的代码:
width = 416
height = 416
heatmap = np.zeros((width,height),dtype='float')
初始化充满零的数组
box = [60,50,100,100]
Box我想画画
while box[0] < box[2]:
width = box[2] - box[0]
height = box[3] - box[1]
for i in range(width):
heatmap[box[1]][box[0] + i] = value
heatmap[box[3]][box[0] + i] = value
for j in range(height):
heatmap[box[1] + j][box[0]] = value
heatmap[box[1] + j][box[2]] = value
value = value + 0.1
box[0] += 1
box[1] += 1
box[2] += -1
box[3] += -1
plt.imshow(heatmap)
plt.show()
我的绘图代码,基本上它会绘制spirale,但是当我打印它时 有奇怪的黑线,它在那里做什么以及它是如何到达那里的?
当我想保存iamge时
plt.imsave("name.png", heatmap.astype('uint8'), cmap=matplotlib.cm.gray, vmin=0, vmax=255)
它可以保存黑色图像,为什么会这样?
感谢您的帮助。
答案 0 :(得分:0)
在你的一个循环中再做一次迭代(这里超宽)修复了这个问题:
{# {% include 'myapp / _calender_entry.html'%} #}
答案 1 :(得分:0)
作为对第二个问题的回答,关于黑色图像:
热图的最大值为1.9,请参阅heatmap.max()
。
您用于图片的值的最大值为1,请参阅heatmap.astype('uint8').max()
。
如果您在vmax
来电中将imsave
更改为1,则会获得一个白色方框而非近乎黑色方框。