gpt4 book ai didi

python - Seaborn.relplot() 中的 `hue` 参数在给定数值数据时会跳过一个整数?

转载 作者:太空狗 更新时间:2023-10-29 21:27:48 26 4
gpt4 key购买 nike

色调参数跳过一个整数。

d = {'column1':[1,2,3,4,5], 'column2':[2,4,5,2,3], 'cluster':[0,1,2,3,4]}

df = pd.DataFrame(data=d)

sns.relplot(x='column2', y='column1', hue='cluster', data=df)

While all points are plotted, the cluster label is missing '2'.

python 2.7海伯恩 0.9.0Ubuntu 16.04 LTS

最佳答案

“完整”图例

如果 hue 是数字格式,seaborn 会假设它代表一些连续的数量,并决定沿着颜色维度显示它认为具有代表性的样本。

您可以使用 legend="full" 来规避这一点。

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

df = pd.DataFrame({'column1':[1,2,3,4,5], 'column2':[2,4,5,2,3], 'cluster':[0,1,2,3,4]})
sns.relplot(x='column2', y='column1', hue='cluster', data=df, legend="full")
plt.show()

enter image description here

分类

另一种方法是确保值被分类处理不幸的是,即使您将数字作为字符串插入,它们也会被转换为数字,回退到上述相同的机制。这个可以看as a bug .

但是,您可以选择使用真实类别,例如单个字母。

'cluster':list("ABCDE")

工作正常,

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

d = {'column1':[1,2,3,4,5], 'column2':[2,4,5,2,3], 'cluster':list("ABCDE")}

df = pd.DataFrame(data=d)

sns.relplot(x='column2', y='column1', hue='cluster', data=df)

plt.show()

enter image description here

带有自定义调色板的字符串

上述方法的替代方法是使用转换为字符串的数字,然后确保使用具有与独特色调一样多的颜色的自定义调色板。

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

d = {'column1':[1,2,3,4,5], 'column2':[2,4,5,2,3], 'cluster':[1,2,3,4,5]}

df = pd.DataFrame(data=d)
df["cluster"] = df["cluster"].astype(str)

sns.relplot(x='column2', y='column1', hue='cluster', data=df,
palette=["b", "g", "r", "indigo", "k"])

plt.show()

enter image description here

关于python - Seaborn.relplot() 中的 `hue` 参数在给定数值数据时会跳过一个整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51525284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com