【发布时间】:2019-08-23 22:24:11
【问题描述】:
在 Seaborn 的基于 FacetGrid 的线图中,想更改标签标题。看似简单的事情,结果却是一项艰巨的任务
tips = sns.load_dataset("tips")
g = sns.FacetGrid(tips, col= 'day', legend_out= True,)
g.map(sns.lineplot, 'total_bill', 'tip', 'sex', 'time',
ci = False)
g.fig.legend()
我想通过添加“title”参数将标签标题从“sex”更改为“gender”。但事实证明,它成为现有标题之上的标题
g.add_legend(title = 'Gender')
legend title 'sex' with headline 'Gender'
我也尝试访问 fig.legend 来更改文本,但现在它显示了多个图例,可能是由于多方面的情节。
l = g.fig.legend()
l.texts[0].set_text('Gender')
legend title 'Gender', however, with multiple legends
我确信通过更改数据中的变量名称来更改名称可能有一种“hacky”方式,但我想知道是否有一种方法可以简单地替换 Seabron FacetGrid 的图例标题,或者,如果它不可能,通过“fig.legend”添加标题,同时显示单个相关图例。非常感谢!
【问题讨论】:
-
您可以使用 g._legend 访问
FacetGrid图例。我从this post 得到了这个想法。我认为在那之后参考matplotlib tutorial 应该可以帮助您解决这个问题。
标签: python matplotlib plot seaborn