jam*_*kim 9 python plot matplotlib seaborn
在 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()
Run Code Online (Sandbox Code Playgroud)
我想通过添加“标题”参数将标签标题从“性别”更改为“性别”。但事实证明,这成为了现有标题之上的标题
g.add_legend(title = 'Gender')
Run Code Online (Sandbox Code Playgroud)
我还尝试访问Fig.legend来更改文本,但现在它显示多个图例,可能是由于多方面的绘图。
l = g.fig.legend()
l.texts[0].set_text('Gender')
Run Code Online (Sandbox Code Playgroud)
我确信可能有一种“hacky”方法可以通过更改数据中的变量名称来更改名称,但我想知道是否有一种方法可以简单地替换 Seabron FacetGrid 的图例标题,或者如果不可能,通过“fig.legend”添加标题,同时显示单个相关图例。非常感谢!
为什么不将列名替换"sex"为"Gender"?
import matplotlib.pyplot as plt
import seaborn as sns
tips = sns.load_dataset("tips")
tips.columns = [n if n != "sex" else "Gender" for n in tips.columns]
g = sns.FacetGrid(tips, col= 'day')
g.map(sns.lineplot, 'total_bill', 'tip', 'Gender', 'time',
ci = False)
g.add_legend()
plt.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4238 次 |
| 最近记录: |