如何解决“用户警告:调色板列表的值 (10) 多于所需值 (4),这可能不是预期的”?

How can I resolve "UserWarning: The palette list has more values (10) than needed (4), which may not be intended"?

提问人:andy_H 提问时间:9/11/2023 最后编辑:andy_H 更新时间:9/12/2023 访问量:168

问:

我使用“tab10”调色板,因为它有蓝色、绿色、橙色和红色等不同颜色。

k_clust = KMeans(n_clusters=4, random_state= 35, n_init=1).fit(df_normal)

palette = sns.color_palette("tab10")
sns.pairplot(new_df, hue="clusters", palette=palette)

簇数只有 4 个,调色板“tab10”有 4 种以上的颜色。有没有办法解决这个用户警告?

输出为:

C:\Users\....\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\seaborn\axisgrid.py:1507: UserWarning: The palette list has more values (10) than needed (4), which may not be intended.
  func(x=vector, **plot_kwargs)
Python Seaborn 警告 调色板

评论

1赞 Trenton McKinney 9/12/2023
如这些副本所示,如何在 seaborn 和 Seaborn 调色板中制作具有许多独特颜色的颜色映射表 - 防止颜色回收,设置:。不知道为什么它被取消了,因为问题归结为,我如何设置调色板中的颜色数量n_colors=palette = sns.color_palette("tab10", n_colors=4))
0赞 Christoph Rackwitz 9/13/2023
我会再次以重复的方式投票。stackoverflow.com/users/1533576/mwaskom 导致 undupe 并重新开放。

答:

1赞 Christoph Rackwitz 9/11/2023 #1

color_palette() 的文档说您可以传递给调用。n_colors=4

试试这个:

...
palette = sns.color_palette("tab10", n_colors=4) # equal to n_clusters
...