我正在使用 factorplot(kind="bar")
和 seaborn。
情节很好,除了图例放错了地方:右边太多,文本超出了情节的阴影区域。
我如何让 seaborn 将图例放在其他地方,例如左上角而不是右中角?
原文由 user124114 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在使用 factorplot(kind="bar")
和 seaborn。
情节很好,除了图例放错了地方:右边太多,文本超出了情节的阴影区域。
我如何让 seaborn 将图例放在其他地方,例如左上角而不是右中角?
原文由 user124114 发布,翻译遵循 CC BY-SA 4.0 许可协议
seaborn >= 0.11.2
use seaborn.move_legend
, which applies to Axes and Figure level plots, and it accepts kwargs
, like title
matplotlib.axes.Axes.legend
和 如何将图例从图中 移除。sns.factorplot
,它已被重命名为 seaborn.catplot
,一个图形级别的情节。sns.jointplot
g.ax_joint
- 或 sns.JointGrid
g
请参阅 如何从 seaborn JointGrid 或 jointplot 移动或删除图例。python 3.10
, pandas 1.5.0
, matplotlib 3.5.2
seaborn 0.12.0
seaborn.object
界面重新定位图例的解决方案,该界面在 seaborn 0.12.0
中首次亮相。 import matplotlib.pyplot as plt
import seaborn as sns
# load the data
penguins = sns.load_dataset('penguins', cache=False)
g = sns.displot(penguins, x="bill_length_mm", hue="species", col="island", col_wrap=2, height=3)
sns.move_legend(g, "upper left", bbox_to_anchor=(.55, .45), title='Species')
plt.show()
ax = sns.histplot(penguins, x="bill_length_mm", hue="species")
sns.move_legend(ax, "lower center", bbox_to_anchor=(.5, 1), ncol=3, title=None, frameon=False)
plt.show()
原文由 Trenton McKinney 发布,翻译遵循 CC BY-SA 4.0 许可协议
1 回答9.6k 阅读✓ 已解决
2 回答5.2k 阅读✓ 已解决
2 回答3.6k 阅读✓ 已解决
3 回答4.5k 阅读
2 回答1.6k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
4 回答1.1k 阅读✓ 已解决
基于@user308827 的回答:您可以在 factorplot 中使用
legend=False
并通过 matplotlib 指定图例:plt
作用于当前轴。要从FacetGrid
获取轴,请使用图。g.fig.get_axes()[0].legend(loc='lower left')