首页 > 解决方案 > Matplotlib-配色方案

问题描述

我有一个 (256,256) numpy 数组。每个元素的值为 1 或 2 或 3。我想通过以下方式将此数组绘制为图像:`plt.plot(A)' 我想做的是将此配色方案分配给每个元素;1:红色,2:蓝色,3:灰色。

我不知道我该怎么做,有人可以帮助我吗?

谢谢

标签: matplotlib

解决方案


你可以使用plt.imshow()和一个ListedColormap. 下面的示例使用黄色而不是灰色来更好地查看不同的颜色(“浅灰色”可能看起来比“灰色”更好)。

import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
import numpy as np
from scipy.ndimage import gaussian_filter

fig = plt.figure(figsize=(18, 14))
A = (gaussian_filter(np.random.randn(256, 256), 20) * 200).astype(int) % 3 + 1
cmap = ListedColormap(['crimson', 'dodgerblue', 'yellow'])
plt.imshow(A, origin='lower', cmap=cmap)
cbar = plt.colorbar(ticks=np.linspace(1, 3, 7)[1::2])
cbar.set_ticklabels([1, 2, 3])
plt.show()

示例图


推荐阅读