如何在Seaborn的lmplot功能中删除颜色条?

时间:2019-06-27 20:17:07

标签: python matplotlib seaborn colorbar

在seaborn lmplot函数中,我们有hue参数,它将自动在右侧绘制一个颜色条。如何禁用/删除颜色栏?

以下是将生成颜色栏的示例代码

df = pd.DataFrame({'x':[1,2,3,1,2,3,1,2,3],'y':[1,2,3,2,3,4,3,4,5],'color':['a','a','a','b','b','b','c','c','c']})
facets = sns.lmplot(data=df, x='x', y='y', hue='color', fit_reg=False)
facets.fig.show()

enter image description here

我试图调用颜色条对象并将其删除。在传统的matplotlib方法中,我们可以使用

collection = ax.scatter(x='a', y='b', data=df)
colorbar = fig.colorbar(collection)

调用它,但我看不到lmplot的工作方式。另一种替代方法是在sns.heatmap函数中,该函数提供cbar参数

sns.heatmap(crosstab, cbar=False)

但是在lmplot中没有cbar选项。在lmplot中执行此操作的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

Matplotlib / Seaborn中的颜色条实际上就像是图例,但用于连续数据(在热图中得到的)。在这种情况下,由于您具有离散标签(a =蓝色,b =橙色,c =绿色),因此您需要访问legend。您可以在Python Data Science Handbook

中详细了解区别

Seaborn中的大多数绘图类型现在已经支持将legend参数传递到plot方法中,例如:

facets = sns.lmplot(data=df, x='x', y='y', hue='color', fit_reg=False, legend=False)