Python Seaborn - проблема с доступом к осям lmplot - PullRequest
0 голосов
/ 11 июля 2020

Я рисую два подмножества данных с подходящей линией регрессии, используя lmplot seaborn, и я не могу на всю жизнь получить доступ к осям для изменения моих графиков. Я знаю, что этот вопрос очень подходит для Google, но я пробовал все, что уже предлагалось, и все выдает ошибку.

lm = sns.lmplot(data = dfAll, hue = 'SampleType', scatter = True, fit_reg = True, ci = 95,
             line_kws = {'color':'black'}, col = 'SampleType',
             x = 'Order', y ='Speed').fig.suptitle('Prder vs Speed', 
                                                                   fontsize=14)  

Я попытался напрямую использовать методы набора FacetGrid, так как я знаю, что lmplot использует FacetGrid под капотом:

lm.set(xlim = (-0.5, 0.0))     

, что дает мне:

AttributeError: объект 'Text' не имеет свойства 'xlim'

Я попытался получить такие оси :

ax = lm.axes
ax[0].set_title['Control']
ax[1].set_title['Drug']

и для ax я действительно получаю два объекта matplotlib.axes._subplots_AxesSubplot.

Однако, задав заголовки, я получаю:

AttributeError: ' numpy .ndarray 'объект не имеет атрибута' set_title '

Я также пробовал ax = lm.axes.flatten (), что приводит к тому же типу объекта, но ошибка:

TypeError: объект 'method' не индексируется

Наконец, просто используя pyplot, например:

plt.xlabel('Order')        

Изменяет только правый график.

Я хочу использовать lmplot, потому что мне нужно построить линию регрессии и вычислить e r2 для каждого из участков. Все, что я хочу сделать, это добавить заголовок для каждого сюжета, добавить текст (r2) и изменить заголовки осей, и я искал способ сделать это со вчерашнего дня ..

Любая помощь будет очень большой. оценен :) или, в качестве альтернативы, подойдет любой другой пакет / функция для построения статистики корреляции.

...