将 seaborn plot 图例移动到不同的位置

新手上路,请多包涵

我正在使用 factorplot(kind="bar") 和 seaborn。

情节很好,除了图例放错了地方:右边太多,文本超出了情节的阴影区域。

我如何让 seaborn 将图例放在其他地方,例如左上角而不是右中角?

原文由 user124114 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

基于@user308827 的回答:您可以在 factorplot 中使用 legend=False 并通过 matplotlib 指定图例:

 import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="whitegrid")

titanic = sns.load_dataset("titanic")

g = sns.factorplot("class", "survived", "sex",
                   data=titanic, kind="bar",
                   size=6, palette="muted",
                   legend=False)
g.despine(left=True)
plt.legend(loc='upper left')
g.set_ylabels("survival probability")

  • plt 作用于当前轴。要从 FacetGrid 获取轴,请使用图。
    • g.fig.get_axes()[0].legend(loc='lower left')

原文由 Jules 发布,翻译遵循 CC BY-SA 4.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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏