当我在参数中包含x_bins时,Seaborn regplot停止将图例颜色与线条颜色匹配。在我添加x_bins之前,它可以正常工作,然后多色图例失去其颜色差异。
import matplotlib.pyplot as plt
import numpy as np; np.random.seed(1)
import pandas as pd
import seaborn as sns
data=pd.DataFrame({"VarX" : np.arange(10),
'VarY1': np.random.rand(10),
'VarY2': np.random.rand(10),
'VarY3': np.random.rand(10)})
fig = plt.figure(figsize=(10,6))
sns.regplot(x='VarX', y='VarY1', data=data, x_bins=10)
sns.regplot(x='VarX', y='VarY2', data=data, x_bins=10)
sns.regplot(x='VarX', y='VarY3', data=data, x_bins=10)
fig.legend(labels=['First','Second','Third'])
plt.show()
答案 0 :(得分:1)
Seaborn具有自己的图例概念,该图例通常与默认的matplotlib图例冲突。
要保持思维方式的顽固,您可以为此使用lmplot
并使其自动产生图例。这需要对输入数据进行一些调整。
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np; np.random.seed(1)
import pandas as pd
data=pd.DataFrame({"VarX" : np.arange(10),
'VarY1': np.random.rand(10),
'VarY2': np.random.rand(10),
'VarY3': np.random.rand(10)})
df = data.set_index("VarX")
df.columns = ['First','Second','Third']
df = df.stack().rename_axis(['VarX','Ycategory']).rename('VarY').reset_index()
sns.lmplot(x="VarX", y="VarY", hue="Ycategory", data = df, x_bins=10)
plt.show()