Могу ли я передать экстенты осей в PairGrid в seaborn? - PullRequest
0 голосов
/ 21 сентября 2018

Я хочу определить экстенты осей в PairGrids при их построении.Я знаю, что могу настроить их после построения графика, но я хочу отобразить гексбины на графики, которые будут деформированы, если я отрегулирую после факта. matplotlib.pyplot.hexbin принимает аргумент экстента, который позволяет мне определять экстенты во время построения.Я могу передать этот аргумент при использовании FacetGrid с двумя переменными.

Я хотел бы предоставить список экстентов для каждой переменной в фрейме данных pandas, чтобы я мог сравнивать графики по наборам данных, которые могут не иметь одинаковый диапазонзначений (например, iris и iris_2).

import seaborn as sns
import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm

iris = sns.load_dataset("iris")
# Create second dataset I'd like to compare, but has different range of values
iris_2 = iris.copy()
iris_2[iris_2.columns[0:4]] = iris_2[iris_2.columns[0:4]] + 2

def hexbin(x, y, **kws):
    cmap = sns.light_palette(kws.pop("color"), as_cmap=True)
    plt.hexbin(x, y, cmap=cmap, mincnt=1, **kws)

g = sns.FacetGrid(iris, col="species")
g = g.map(hexbin, 'sepal_width', 'sepal_length', norm=LogNorm(),
          gridsize=10, extent=[1, 5, 4, 10])

enter image description here Вот код, который я хотел бы изменить.

g = sns.PairGrid(iris, diag_sharey=False)
g.map_diag(sns.kdeplot, lw=3, legend=False, shade=True)
g.map_lower(hexbin, gridsize=10, norm=LogNorm())
g.map_upper(plt.scatter, s=3)

enter image description here

При построении второго набора данных неясно, чем отличаются наборы данных, поскольку оси настраиваются для отдельных наборов данных.

g = sns.PairGrid(iris_2, diag_sharey=False)
g.map_diag(sns.kdeplot, lw=3, legend=False, shade=True)
g.map_lower(hexbin, gridsize=10, norm=LogNorm())
g.map_upper(plt.scatter, s=3)

enter image description here

В моем конкретном случае идеальное решение может выглядеть как словарь с нужными экстентами для каждого столбца данных:

extent_dict = {'sepal_length': [4, 10], 'sepal_width': [2, 7],
               'petal_length': [0, 10], 'petal_width': [0, 4.5]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...