Чтобы изменить положение легенды на морском графике, вы можете использовать команду plt.legend() .
Например, вы можете использовать следующий синтаксис для размещения легенды в правом верхнем углу графика:
plt.legend(loc='upper right')
Расположение по умолчанию — «лучшее» — именно здесь Matplotlib автоматически находит место для легенды в зависимости от того, где он избегает охвата каких-либо точек данных.
Однако вы можете указать любое из следующих местоположений легенды:
- верхний правый
- верхний левый
- нижний левый
- Нижний правый
- Правильно
- центр слева
- центр справа
- нижний центр
- верхний центр
- центр
Вы также можете использовать аргумент bbox_to_anchor() , чтобы разместить легенду за пределами графика. Например, вы можете использовать следующий синтаксис для размещения легенды в правом верхнем углу за пределами графика:
plt.legend(bbox_to_anchor=( 1.05 , 1 ), loc='upper left', borderaxespad= 0 )
В следующих примерах показано, как использовать каждый из этих методов на практике.
Пример 1: изменение положения легенды внутри графика Seaborn
В следующем коде показано, как поместить легенду в центральную правую часть диаграммы рассеивания морской волны:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
#create fake data
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
'assists': [5, 7, 7, 9, 12, 9, 9, 4],
'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B']})
#create scatterplot
sns.scatterplot(data=df, x='points', y='assists', hue='team')
#place legend in center right of plot
plt.legend(loc='center right', title='Team')

А следующий код показывает, как поместить легенду в верхнюю левую часть диаграммы рассеивания морской волны:
#create scatterplot
sns.scatterplot(data=df, x='points', y='assists', hue='team')
#place legend in upper left of plot
plt.legend(loc='upper left', title='Team')

Пример 2: изменить положение легенды за пределами участка Seaborn
Чтобы разместить легенду за пределами морского сюжета, мы можем использовать аргумент bbox_to_anchor() .
Например, вот как разместить легенду за пределами верхнего правого угла графика:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
#create fake data
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
'assists': [5, 7, 7, 9, 12, 9, 9, 4],
'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B']})
#create scatterplot
sns.scatterplot(data=df, x='points', y='assists', hue='team')
#place legend outside top right corner of plot
plt.legend(bbox_to_anchor=( 1.02 , 1 ), loc='upper left', borderaxespad= 0 )

А вот как разместить легенду за пределами нижнего правого угла графика:
#create scatterplot
sns.scatterplot(data=df, x='points', y='assists', hue='team')
#place legend outside bottom right corner of plot
plt.legend(bbox_to_anchor=( 1.02 , 0.15 ), loc='upper left', borderaxespad= 0 )

Подробное объяснение аргумента bbox_to_anchor() см. в документации по matplotlib.
Дополнительные ресурсы
Как настроить размер рисунка на графике Seaborn
Как изменить метки осей на графике Seaborn
Как изменить размер шрифта легенды на графике Seaborn