【发布时间】:2021-04-22 22:51:05
【问题描述】:
我有多个图像(numpy 数组),其数据值对应于 N 个不同的类。每个图像不一定包含每个类的示例。例如,可能总共有 12 个不同的类别 (0:11),但是,一张图像可能只包含 1:9 的类别。
我想绘制每个图像,以便分配给每个类的颜色在所有图像中都是相同的。
我研究了几个答案:here 接受和流行的答案不适用于多个图像。 here 似乎可以工作,但我真的很想使用颜色图(from matplotlib import cm),以免手动设置颜色。我还想要一种方法来创建一个包含所有类的适当颜色条。
我试过的代码如下:
import numpy as np
from matplotlib import cm
import matplotlib.pyplot as plt
t1 = np.arange(9).reshape(3,3)
t2 = t1.copy()
t2[1,1] = 10
t3 = t2.copy()
t3[1,1] = 11
cmap = cm.get_cmap('tab20', 11)
fig, axs = plt.subplots(1,3)
axs[0].imshow(t1, cmap = cmap, vmin = 0, vmax = 11)
axs[1].imshow(t2, cmap = cmap, vmin = 0, vmax = 11)
axs[2].imshow(t3, cmap = cmap, vmin = 0, vmax = 11)
【问题讨论】:
-
cm.get_cmap('tab20', 11)只包含11种不同的颜色,而你需要12种
标签: python matplotlib colormap imshow