Python3 Seaborn PairGrid 图例在子图之外

Zen*_*non 5 legend seaborn python-3.5

我正在制作一个很大的PairGrid图形,但无法将图例设置在图之外(右侧)。PairGrid似乎没有继承legend_out的选项FaceGrid。到目前为止,这是我的尝试,您可以看到图例与图形重叠。

from random import choice

from numpy import random
from matplotlib import pyplot as plt
import seaborn as sns
import pandas as pd

def my_kdeplot(dfx, dfy, *args, **kwargs):
    ax = sns.kdeplot(dfx, dfy, alpha=0.7,
                     cmap=sns.light_palette(kwargs['color'], as_cmap=True))

names = [choice('ABCDE') for _ in range(1000)]
df = pd.DataFrame(list(zip(names, *[random.random(1000) for _ in range(5)])),
                   columns=['names','A','B','C','D','E'])

g = sns.PairGrid(df, hue='names')

g.map_lower(my_kdeplot)
g.map_upper(plt.scatter, alpha=0.7)
g.map_diag(plt.hist)

g = g.add_legend(fontsize=14)
sns.plt.savefig('fig.png')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

iay*_*ork 4

您可以使用以下命令调整图例的位置bbox_to_anchor=(horizontal, vertical)

g = g.add_legend(fontsize=14, bbox_to_anchor=(1.5,1))
Run Code Online (Sandbox Code Playgroud)

您需要稍微调整一下数字才能找到正确的图例位置。