要在matplotlib图中添加图例,只需运行即可legend()
.
如何从情节中删除图例?
(我最接近的是运行legend([])
以便从数据中清空图例.但是在右上角留下了一个丑陋的白色矩形.)
我使用seaborn绘制分组条形图,如https://seaborn.pydata.org/examples/factorplot_bars.html
给我:https: //seaborn.pydata.org/_images/factorplot_bars.png
传说中有一个标题(性别),我想删除.
我怎么能实现这一目标?
首先,我是 Python 和 seaborn 的新手,但是在花了一些时间处理这个问题之后,我相信我的问题没有在其他地方得到解决。如果是这样,我真诚地道歉。
我想使用 seabornrelplot()
函数kind='line'
将数据框中的数据绘制为多条不同颜色的行。与行相对应的数据由列中的值(cat
例如)和我使用hue
(在本例中为hue='cat'
)中的值分类分隔。这是一个简单的例子:
import pandas as pd
import seaborn as sns
df = pd.DataFrame({'x': [0, 1, 3, 4, 7, 1, 2, 5, 6],
'y': [2, 4, 3, 6, 5, 7, 10, 9, 7],
'cat': [0, 0, 0, 0, 0, 1, 1, 1, 1]})
g = sns.relplot(x='x', y='y', hue='cat', kind='line', data=df);
Run Code Online (Sandbox Code Playgroud)
它产生以下图形:
如何在不更改列名称的情况下修改图例标题cat
?我相信我的问题是图例标题实际上是作为图例项目实现的,所以我想要做的是删除该项目,然后添加适当的图例标题(我可以使用g._legend.set_title('New title')
),但我不知道如何完成这个。
这个问题不同于删除seaborn lineplot图例标题在于relplot()
与kind='line'
产生FacetGrid …
我在泰坦尼克号数据集上使用 seaborn 散点图和计数图。
这是我绘制散点图的代码。我还尝试编辑图例标签。
ax = seaborn.countplot(x='class', hue='who', data=titanic)
legend_labels, _= ax.get_legend_handles_labels()
pyplot.show();
Run Code Online (Sandbox Code Playgroud)
为了编辑图例标签,我这样做了。在这种情况下,不再有图例标题。如何将此标题从 'who' 重命名为 'who1' ?
ax = seaborn.countplot(x='class', hue='who', data=titanic)
legend_labels, _= ax.get_legend_handles_labels()
ax.legend(legend_labels, ['man1','woman1','child1'], bbox_to_anchor=(1,1))
pyplot.show();
Run Code Online (Sandbox Code Playgroud)
我使用相同的方法编辑散点图上的图例标签,结果在这里有所不同。它使用 'dead' 作为图例标题,并使用 'survied' 作为第一个图例标签。
ax = seaborn.scatterplot(x='age', y='fare', data=titanic, hue = 'survived')
legend_labels, _= ax.get_legend_handles_labels()
ax.legend(legend_labels, ['dead', 'survived'],bbox_to_anchor=(1.26,1))
pyplot.show();
Run Code Online (Sandbox Code Playgroud)
(1) 是否有删除和添加图例标题的参数?
(2) 我在两个不同的图上使用了相同的代码,图例的结果是不同的。为什么?
谢谢