Я делаю график KDE из двух одномерных массивов Numpy разного размера с Seaborn.
import seaborn as sns
import numpy as np
# dummy data:
array1 = np.random.randint(10, size=10)
array2 = np.random.randint(10, size=15)
sns.displot([array1, array2], kind = "kde")
Как присвоить собственные имена строкам, представляющим дистрибутивы?
Если вы хотите настроить легенду в этом случае, используйте fig.lengend[0]
, чтобы получить текст легенды и обновить его.
импортировать Seaborn как sns импортировать numpy как np
# dummy data:
array1 = np.random.randint(10, size=10)
array2 = np.random.randint(10, size=15)
grid = sns.displot([array1, array2], kind = "kde")
lg = grid.fig.legends[0]
lg.texts[0].set_text('ZERO')
lg.texts[1].set_text('ONE')
Другой ответ полезен для того, чтобы показать, как изменить текст легенды, но в этом случае я думаю, что лучший подход - дать Seaborn имена, которые вы хотите использовать:
sns.displot({"zero": array1, "one": array2}, kind = "kde")
Этот способ требует меньшего количества кода и (что более важно) не рискует рассинхронизировать метки, которые вы устанавливаете в легенде, с порядком данных, которые вы передаете displot
.
Вау, такой синтаксис был моим первым побуждением! Почему я не попробовал, чувак? :)
Хотя полезно знать, как добраться до легенды и изменить текст, я думаю, что лучше сохранить имена и данные, связанные с самого начала, если это возможно (и это здесь).