Python 颜色贴图不随imshow()更改

Python 颜色贴图不随imshow()更改,python,python-3.x,matplotlib,scikit-image,Python,Python 3.x,Matplotlib,Scikit Image,我正在将KMeans应用于图像,但当我尝试使用cmap更改颜色时,它没有任何作用。我怎么做呢 im = io.imread("image.jpg") / 255 x, y, z = im.shape im_2D = im.reshape(x*y, z) kmeans = KMeans(n_clusters=3, random_state=0) kmeans.fit(im_2D) im_clustered = kmeans.cluster_centers_[kmeans.lab

我正在将KMeans应用于图像,但当我尝试使用
cmap
更改颜色时,它没有任何作用。我怎么做呢

im = io.imread("image.jpg") / 255
x, y, z = im.shape
im_2D = im.reshape(x*y, z)
kmeans = KMeans(n_clusters=3, random_state=0)
kmeans.fit(im_2D)
im_clustered = kmeans.cluster_centers_[kmeans.labels_].reshape(x, y, z)

fig, ax = plt.subplots(1, 2)
ax[0].imshow(im)
ax[0].set_title("Original")
ax[1].imshow(im_clustered, cmap="jet")
ax[1].set_title("Segmented using k=3")
plt.show()
编辑:

这是使用上述代码的输出:

如果使用
jet
cmap,这就是我希望的输出:

您可以使用
ax[1].imshow(kmeans.labels\uuu.reforme(x,y),cmap='jet')
。 当前的
im\u集群
包含rgb值。要应用颜色贴图,需要标量值

将numpy导入为np
将matplotlib.pyplot作为plt导入
将matplotlib.cbook作为cbook导入
从sklearn.cluster导入KMeans
使用cbook.get_sample_数据('ada.png')作为图像文件:
im=plt.imread(图像文件)
x、 y,z=im.shape
im_2D=im.重塑(x*y,z)
kmeans=kmeans(n_集群=3,随机状态=0)
kmeans.fit(im_2D)
kmeans.cluster\u centers=np.clip(kmeans.cluster\u centers,0,1)
im\u clustered=kmeans.clusteren\u centers\u[kmeans.labels\uu]。重塑(x,y,z)
图,ax=plt.子批次(1,3,figsize=(10,4))
对于ax中的ax_i:
ax_i.轴('off')ax[0]。imshow(im)
ax[0]。设置标题(“原始”)
ax[1]。imshow(im_集群,cmap=“jet”)
ax[1]。设置标题(“使用k=3分段”)
ax[2].imshow(kmeans.labels_u2;.reformate(x,y),cmap=“jet”)
ax[2]。设置标题(“分段,k=3,jet cmap”)
plt.show()

@DavidG我不知道你的意思。我尝试了其他的方法,但它们也没有改变任何东西。我没有发现两者有任何区别(有或没有
cmap
)。你能给我们看一下预期的输出吗?@MaheryRanaivoson我已经把当前的输出和预期的输出相加了output@JohanC是的,成功了。