Matplotlib显示奇怪的行

时间:2018-04-23 15:14:37

标签: python matplotlib

我想在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,但是当我打印它时enter image description here 有奇怪的黑线,它在那里做什么以及它是如何到达那里的?

当我想保存iamge时

plt.imsave("name.png", heatmap.astype('uint8'), cmap=matplotlib.cm.gray, vmin=0, vmax=255)

它可以保存黑色图像,为什么会这样?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

在你的一个循环中再做一次迭代(这里超宽)修复了这个问题:

{# {% include 'myapp / _calender_entry.html'%} #}

答案 1 :(得分:0)

作为对第二个问题的回答,关于黑色图像:

热图的最大值为1.9,请参阅heatmap.max()

您用于图片的值的最大值为1,请参阅heatmap.astype('uint8').max()

如果您在vmax来电中将imsave更改为1,则会获得一个白色方框而非近乎黑色方框。