为了账号安全,请及时绑定邮箱和手机立即绑定

如何在seaborn regplot中使用x_bins修复图例颜色?

如何在seaborn regplot中使用x_bins修复图例颜色?

临摹微笑 2022-01-05 10:48:52
当我在参数中包含 x_bins 时,Seaborn regplot 停止将图例颜色与线条颜色匹配。它工作正常,直到我添加 x_bins 然后多色图例失去其颜色差异。import matplotlib.pyplot as pltimport numpy as np; np.random.seed(1)import pandas as pdimport seaborn as snsdata=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()
查看完整描述

1 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

Seaborn 有自己的图例概念,它经常与默认的 matplotlib 图例冲突。


为了保持seaborn的思维方式,你可以使用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()

//img1.sycdn.imooc.com//61d50737000110c705840479.jpg

查看完整回答
反对 回复 2022-01-05
  • 1 回答
  • 0 关注
  • 165 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信