matplotlib 从RGB颜色列表创建颜色Map表

gupuwyp2  于 2023-06-06  发布在  其他
关注(0)|答案(1)|浏览(150)

我想在Python中创建一个类似于此图像的颜色Map:

但我的Map只有3行4列。我想用RGB值为每个方块指定一个特定的颜色值。我试过这个代码

colors=np.array([[0.01, 0.08, 0.01], [0.01, 0.16, 0.01], [0.01, 0.165, 0.01], [0.01, 0.3, 0.01],
                 [0.01, 0.2, 0.01], [0.666, 0.333, 0.01], [0.01, 0.165, 0.01], [0.01, 0.3, 0.01],
                 [0.01, 0.2, 0.01], [0.666, 0.333, 0.01], [0.01, 0.165, 0.01], [0.01, 0.3, 0.01]])

fig, ax=plt.subplots()
ax.imshow(colors)
ax.set_aspect('equal')
plt.show()

但产出与我的预期不符。看起来,使用这种方法,我不能使用RGB值来表示正方形的颜色。有人能帮帮我吗?谢谢你!

cedebl8k

cedebl8k1#

您有一个(12,3)颜色数组,而您需要一个(4, 3, 3)图像,每个像素一种RGB颜色。

import numpy as np  # type: ignore
import matplotlib.pyplot as plt  # type: ignore

colors = np.array(
    [
        # this is the first row
        [
            # these are the 3 pixels in the first row
            [0.01, 0.08, 0.01],
            [0.01, 0.16, 0.01],
            [0.01, 0.165, 0.01],
        ],
        [
            [0.01, 0.3, 0.01],
            [0.01, 0.2, 0.01],
            [0.666, 0.333, 0.01],
        ],
        [
            [0.01, 0.165, 0.01],
            [0.01, 0.3, 0.01],
            [0.01, 0.2, 0.01],
        ],
        # this is the fourth row
        [
            [0.666, 0.333, 0.01],
            [0.01, 0.165, 0.01],
            [0.01, 0.3, 0.01],
        ],
    ]
)
print(colors.shape)

fig, ax = plt.subplots()
ax.imshow(colors)
ax.set_aspect("equal")
plt.show()

根据需要按行/列重新排列数据。

相关问题