Estou usando o lmplot do Seaborn para traçar uma regressão linear, dividindo meu conjunto de dados em dois grupos com uma variável categórica.
Para xey, gostaria de definir manualmente o limite inferior em ambos os gráficos, mas deixar o limite superior no padrão Seaborn. Aqui está um exemplo simples:
import pandas as pd
import seaborn as sns
import random
n = 200
random.seed(2014)
base_x = [random.random() for i in range(n)]
base_y = [2*i for i in base_x]
errors = [random.uniform(0,1) for i in range(n)]
y = [i+j for i,j in zip(base_y,errors)]
df = pd.DataFrame({'X': base_x,
'Y': y,
'Z': ['A','B']*(n/2)})
mask_for_b = df.Z == 'B'
df.loc[mask_for_b,['X','Y']] = df.loc[mask_for_b,] *2
sns.lmplot('X','Y',df,col='Z',sharex=False,sharey=False)
Isso resulta no seguinte:

Mas, neste exemplo, gostaria que xlim e ylim fossem (0, *). Tentei usar sns.plt.ylim e sns.plt.xlim, mas eles afetam apenas o gráfico à direita. Exemplo:
sns.plt.ylim(0,)
sns.plt.xlim(0,)

Como posso acessar xlim e ylim para cada gráfico no FacetGrid?


numpy.randommódulo, poderá economizar muito tempo gerando dados aleatórios (o que pode ser uma coisa muito útil de se fazer!). Por exemplo, você pode obterbase_xebase_ycombase_x = np.random.rand(n); base_y = base_x * 2. Ayvariável pode então ser gerada de forma semelhante com operações vetorizadas.