Python 使用RGB数据将输入数据剪裁到imshow的有效范围

Python 使用RGB数据将输入数据剪裁到imshow的有效范围,python,numpy,matplotlib,jupyter-notebook,Python,Numpy,Matplotlib,Jupyter Notebook,完整错误消息:使用RGB数据将输入数据剪裁到imshow的有效范围([0..1]表示浮点或[0..255]表示整数) 我试图从文本文档中的一系列RGB值中可视化一个色带。然而,当我使用下面的函数时,我得到了上面的错误,色带如下所示 我已经在这里尝试了许多解决方案,但仍然无法摆脱“剪辑输入”消息 以下是绘制色带的代码: def plot_colors(col_list, col_order, ratio = 10): assert len(col_list) == len(col_or

完整错误消息:使用RGB数据将输入数据剪裁到imshow的有效范围([0..1]表示浮点或[0..255]表示整数)

我试图从文本文档中的一系列RGB值中可视化一个色带。然而,当我使用下面的函数时,我得到了上面的错误,色带如下所示

我已经在这里尝试了许多解决方案,但仍然无法摆脱“剪辑输入”消息

以下是绘制色带的代码:

def plot_colors(col_list, col_order, ratio = 10): 
    assert len(col_list) == len(col_order)
    img = np.zeros((ratio, len(col_list), 3))
    for i in range(0, len(col_list)):
        img[:, i, :] = col_list[col_order[i]]
    fig, axes = plt.subplots(1, figsize=(10,6)) # figsize=(width,height) handles window dimensions
    axes.imshow(img, interpolation='nearest')
    axes.axis('off')
    plt.show()
下面是调用代码的地方:

clustered_colours = data_scaled.sort_values(by=['Cluster']) #sorts colours by cluster

kmeans_cluster = clustered_colours[['Red','Green','Blue']].to_numpy() #Converts DataFrame to numpy array

order = list(range(ncolors)) #order from 0 to ncolours 

plot_colors(kmeans_cluster, order)

Matplotlib希望
imshow
的数据在[0,1]范围内(如果是浮点值),或者在[0255]范围内(如果是整数)

首先,检查
类型(img)
,如果是浮点类型,则必须转换[0,1]范围内的值,如果是整数,则转换[0255]

img=img/np.amax(img)#如果浮动
img=np.array(img/np.amax(img)*255,np.int32)#如果int

Matplotlib希望
imshow
的数据在[0,1]范围内(如果是浮点)或[0255]范围内(如果是整数)

首先,检查
类型(img)
,如果是浮点类型,则必须转换[0,1]范围内的值,如果是整数,则转换[0255]

img=img/np.amax(img)#如果浮动
img=np.array(img/np.amax(img)*255,np.int32)#如果int