Я создал диаграмму рассеяния морского происхождения для набора данных, где я установил для параметра размера один столбец, а для параметра оттенка - другой. Теперь параметр hue состоит только из пяти различных значений и, как предполагается, помогает классифицировать мои данные, в то время как параметр sizes состоит из намного большего, чтобы представлять фактические цифры c данных. В этом текущем наборе данных мои значения оттенков состоят только из 0, 2 и 4, но в опции «краткой» легенды метки легенды не синхронизируются с тем, что очень запутанно. В опции «полная» легенда метки оттенка верны, но размерных меток слишком много. Поэтому я хотел бы отобразить полную легенду для моего параметра оттенка, но только краткую легенду для параметра размеров, поскольку он состоит из множества уникальных значений.
Как выглядит переполненная «полная» легенда
![image](https://i.stack.imgur.com/JSbTH.png)
«Краткая» легенда, которая озадачивающе помечена
![image](https://i.stack.imgur.com/X8osy.png)
Редактировать: Я отредактировал некоторый код, демонстрирующий проблему со случайным набором данных. Чтобы еще раз задать свой вопрос, я хочу, чтобы параметры "shape" были полностью изображены в легенде, а параметры "size" должны быть сокращены (эквивалентно настройке легенды "краткое").
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
x_condition=np.arange(0,20,1)
y_condition=np.arange(0,20,1)
size=np.random.randint(0,200,20)
# I haven't made a random distribution here, because I wanted to make sure it contains at least one of each [0,2,4]
shape=[0,2,0,4]*5
df=pd.DataFrame({"x_condition":x_condition,"y_condition":y_condition,"size":size,"shape":shape})
sns.scatterplot("x_condition", "y_condition", hue="shape", size="size", data=df, palette="coolwarm", legend="brief")
plt.show()
sns.scatterplot("x_condition", "y_condition", hue="shape", size="size", data=df, palette="coolwarm", legend="full")
plt.show()