Использование scatterplot()
облегчает манипулирование легендой.Если вы используете legend='brief
, вы получите эту легенду:
![enter image description here](https://i.stack.imgur.com/lKQIL.png)
Вы можете получить художников и лейблы, использованные для создания этой легенды, используя:
h,l = ax.get_legend_handles_labels()
, поскольку вам нужна только информация о цвете, а не размер, решение состоит в том, чтобы просто воссоздать легенду, используя первую половину художников
ax.legend(h[:4],l[:4])
Полный код:
matplotlib.style.use('fivethirtyeight')
# load data
iris = sns.load_dataset('iris')
# plot
fig, ax = plt.subplots(figsize=(7,5))
sns.scatterplot(
'sepal_length',
'sepal_width',
hue='species',
size='petal_width',
alpha=0.75,
legend='brief',
data=iris,
ax=ax
)
# make adjustments
ax.set_xlabel('Sepal Length')
ax.set_ylabel('Sepal Width')
ax.text(x=0.5, y=1.1, s='Sepal Length vs Width', fontsize=16, weight='bold', ha='center', va='bottom', transform=ax.transAxes)
ax.text(x=0.5, y=1.05, s='The size of each point corresponds to sepal width', fontsize=8, alpha=0.75, ha='center', va='bottom', transform=ax.transAxes)
h,l = ax.get_legend_handles_labels()
ax.legend(h[:4],l[:4], bbox_to_anchor=(1.05, 1), loc=2)
fig.tight_layout()
plt.show()
![enter image description here](https://i.stack.imgur.com/cQpg5.png)