Таможенный биннинг в приморском парном участке - PullRequest
0 голосов
/ 30 мая 2019

Я новичок в seaborn, и в настоящее время я играю с функциями pairplot ... Со следующими

seaborn.pairplot(data,
                 hue="Class",
                 diag_king="hist",
                 diag_kws={'alpha'=0.5}
                 )

Я могу достичь большей части того, что хочу: сетка диаграмм рассеяния из моего pandas кадра данных data, с раздельными распределениями по столбцу Class и полупрозрачными гистограммами по диагонали.

Я понял, что, передав bin=[...] в diag_kws, я могу иметь все диагональные графики принять это разбиение, но я бы хотел, чтобы каждый столбец моего информационного кадра брал свое сопоставление из выделенный словарь (с ключами названия столбцов).

Возможно ли достичь этого с помощью diag_kws? Или мне нужно получить доступ к каждому из диагональных графиков индивидуально после вызова pairplot и перебирать их вручную? Какой самый эффективный способ?

1 Ответ

2 голосов
/ 31 мая 2019

PairGrid предлагает map_diag, которые можно использовать для сопоставления пользовательской функции, которая изменяет параметры при каждом вызове. Это может выглядеть так Помните, что нужно позаботиться о порядке (с помощью аргумента vars), чтобы убедиться, что применяются правильные параметры.

import matplotlib.pyplot as plt
import seaborn as sns


iris = sns.load_dataset("iris", cache=True)
col_list = ['petal_length', 'petal_width', 'sepal_length', 'sepal_width'] 
cols = iter(col_list)

bins = {'sepal_length' : 10, 'sepal_width' : 5, 
        'petal_length' : 35, 'petal_width' : 12}


def myhist(x, **kwargs):
    b = bins[next(cols)]
    plt.text(0.5,0.9, f"bins = {b}", ha="center", 
             transform=plt.gca().transAxes)
    plt.hist(x, bins=b, **kwargs)


g = sns.PairGrid(iris, vars=col_list)
g = g.map_diag(myhist)
g = g.map_offdiag(plt.scatter)

plt.show()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...