python - Seaborn 不使用 %matplotlib 笔记本显示图例

标签 python matplotlib seaborn

当我使用%matplotlib笔记本时,图例不显示。

%matplotlib notebook
...
fg = seaborn.FacetGrid(data=df, hue='Scenario', hue_order=df.Scenario.unique().tolist(), aspect=1.61)
fg.map(plt.scatter, 'Yaw', 'posNoseEye').add_legend()

enter image description here

当我使用 %matplotlib inline 时,图例会正确显示。

%matplotlib inline
...
fg = seaborn.FacetGrid(data=df, hue='Scenario', hue_order=df.Scenario.unique().tolist(), aspect=1.61)
fg.map(plt.scatter, 'Yaw', 'posNoseEye').add_legend()

enter image description here

如何在 %matplotlib 笔记本中管理它? 谢谢

由于我无法在评论中添加图片,所以我尝试了下面的答案,但仍然不起作用。 我有最新版本的 matplotlib 和 seaborn。 enter image description here

最佳答案

该图没有任何用于图例的空间。有多种方法可以克服这个问题,如 this answer 所示。 。

一个选项是手动为图例创建一些空间,例如

%matplotlib notebook
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns

df = pd.DataFrame(np.random.rand(20,2), columns=['Yaw', 'posNoseEye'])
df["Scenario"] = np.random.choice(["Scenario A","Scenario B"], size=20)

fg = sns.FacetGrid(data=df, hue='Scenario', hue_order=df.Scenario.unique().tolist(), aspect=1.61)
fg.map(plt.scatter, 'Yaw', 'posNoseEye')

fg.fig.legend()

fg.fig.subplots_adjust(right=0.7)
plt.show()

enter image description here

关于python - Seaborn 不使用 %matplotlib 笔记本显示图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47290299/

相关文章:

python - 是否有用于临时更改 matplotlib 设置的上下文管理器?

python - 无法通过模型实例访问管理器

python - `elif` 执行的任务不能由 'if' 完成

python - Tomcat 错误日志的正则表达式

python - 导入 matplotlib.pyplot 作为 plt 失败

python - 在 python matplotlib 上使用主要 xticks 的问题

python - 从文件中读取字符串的特定部分

python - 如何在 matplotlib 中提取颜色图的子集作为新的颜色图?

python - 如何在 seaborn 热图中反转色标

python - 分布直方图中的加权条柱