Seaborn没有使用%matplotlib笔记本显示图例

时间:2017-11-14 16:09:39

标签: 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内联时,正确显示了图例。

%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

1 个答案:

答案 0 :(得分:2)

该图没有任何传说空间。有几种方法可以解决这个问题,如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