我的分析在dataframe中只有3个值,这3个值是为relplot " hue“参数设置的,但是seaborn用5个值绘制了一些自动范围色调图例。如何指定精确值?
sns.relplot(x='x', y='y',
hue = 'hue', style='style',
kind='scatter', size = 'size',
data=df2)
size style hue col y x
8 3.717546 1:1 50 715 1.930280e+06 4.932825e+06
24 7.165478 1:2 50 715 1.712680e+06 7.112875e+06
40 5.357067 2:1 50 715 1.148624e+06 2.494125e+06
56 2.758713 1:1 50 715 1.766268e+06 3.196175e+06
72 3.402869 1:2 50 715 9.385742e+05 4.046025e+06
88 3.160937 2:1 50 715 9.856859e+05 1.585155e+06
104 4.094309 1:1 250 715 8.416346e+06 7.944250e+07
120 39.287651 1:2 250 715 6.217049e+06 1.352370e+08
132 1.625882 1:1 5 715 5.055178e+04 5.062150e+04
148 35.241220 2:1 250 715 6.171461e+06 4.046025e+07
164 2.071234 1:1 250 715 6.038509e+06 2.697350e+07
180 13.498847 1:2 250 715 4.636012e+06 4.951300e+07
196 9.499857 2:1 250 715 4.012017e+06 1.322810e+07
212 4.166135 1:1 5 1545 6.218541e+05 6.244550e+05
228 4.979377 1:2 5 1545 6.864812e+05 7.316100e+05
244 4.127152 2:1 5 1545 3.558532e+05 3.565675e+05
257 2.516927 1:2 5 715 5.884268e+04 5.893525e+04
271 4.942125 1:1 5 1545 4.836641e+05 4.840450e+05
因此,有3个不同的值,“风格”,“色调”和“颜色”和图例显示的值从未出现在df2中,至少我想修复色调图例的值: 5,50,250

发布于 2020-10-02 02:47:42
在您的例子中,seaborn认为色调是一个连续变量。你需要改变这一点。一种方法是更改数据帧,例如,通过将色调列转换为字符串。
df['hue'] = df['hue'].map(lambda x: str(x))或者,可以强制seaborn直接将“色调”视为分类随机变量(但在我的经验中,它的行为有点小问题)。请插入relplot关键字。
hue_order = np.unique(df['hue'])https://stackoverflow.com/questions/64158821
复制相似问题