gpt4 book ai didi

python - 如何绘制灰色 block ?

转载 作者:太空宇宙 更新时间:2023-11-03 13:56:56 24 4
gpt4 key购买 nike

我基本上想绘制 50 种灰色......与本书无关! ;)

据我了解 RGB 值,如果所有三个值相同(或接近),我们会得到灰色阴影。例如。 (1, 1, 1) 接近黑色,(254, 254, 254) 接近白色。结论:我不需要 3d 数组来绘制灰色阴影。

如上所述,我使用 3d 数组使其工作,但如果可能的话,我想使用简单的 2d 数组来绘制它们。

这里我们使用 3d 数组得到了正确的结果:

fig, axs = plt.subplots(10, 5, figsize=(20, 10))
fig.tight_layout(pad=0.5)
for i, ax in enumerate(axs.flat):
shade = i * 255/49
im = np.ones((4, 20, 3), dtype=np.uint8) * int(shade) # using 3d array
ax.imshow(im)
ax.tick_params(axis='both', bottom=False, left=False, labelbottom=False, labelleft=False)
ax.set_title('shade: {}'.format(shade))

enter image description here

这里,当仅使用相同值的二维数组(与 cmap='gray' 参数结合)时,我们得到全黑输出:

fig, axs = plt.subplots(10, 5, figsize=(20, 10))
fig.tight_layout(pad=0.5)
for i, ax in enumerate(axs.flat):
shade = i * 255/49
im = np.ones((4, 20), dtype=np.uint8) * int(shade) # using 2d array
ax.imshow(im, cmap='gray')
ax.tick_params(axis='both', bottom=False, left=False, labelbottom=False, labelleft=False)
ax.set_title('shade: {}'.format(shade))

enter image description here

如何仅使用 2d 数组重新创建 3d 数组版本?

最佳答案

这是因为 imshow 默认情况下会标准化您的 cmap,以便数据中的最低值映射为黑色,最高值映射为白色。由于您只有一个值,因此您的所有值都将被解释为最低值。

要解决此问题,您需要告诉 imshow 数据的最小和最大可能值是什么,因为这些值并不总是出现在您的图像中。这是使用 vminvmax 参数完成的:

ax.imshow(im, cmap='gray', vmin=0, vmax=255)

关于python - 如何绘制灰色 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49535702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com