Comment tracer les 2 seaborn lmplots côté-à-côte?
Tracé 2 distplots ou les nuages de points dans une intrigue secondaire fonctionne très bien:
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import pandas as pd
%matplotlib inline
# create df
x = np.linspace(0, 2 * np.pi, 400)
df = pd.DataFrame({'x': x, 'y': np.sin(x ** 2)})
# Two subplots
f, (ax1, ax2) = plt.subplots(1, 2, sharey=True)
ax1.plot(df.x, df.y)
ax1.set_title('Sharing Y axis')
ax2.scatter(df.x, df.y)
plt.show()
Mais quand je fais la même chose avec un lmplot
à la place de l'un ou l'autre type de graphique, j'obtiens une erreur:
AttributeError: 'AxesSubplot' objet n'a pas d'attribut "lmplot'
Est-il possible de tracer ces types de graphiques côte à côte?
BTW: votre exemple ne fonctionne pas. La variable
x
n'est pas défini dans votre dataframe de la définition de la "y"
colonne.OriginalL'auteur samthebrand | 2015-10-10
Vous devez vous connecter pour publier un commentaire.
Vous obtenez ce message d'erreur parce que matplotlib et ses objets sont complètement inconscients de seaborn fonctions.
Passer vos axes d'objets (c'est à dire,
ax1
etax2
) àseaborn.regplot
ou vous pouvez sauter la définition de ceux-ci et d'utiliser lecol
kwarg deseaborn.lmplot
Avec votre même importations, pré-définition de vos axes et à l'aide de
regplot
ressemble à ceci:À l'aide de lmplot nécessite votre dataframe être bien rangé. En continuant de le code ci-dessus:
OriginalL'auteur Paul H