Seaborn의 lmplot을 사용하여 선형 회귀를 플로팅하고 데이터 세트를 범주 형 변수로 두 그룹으로 나눕니다.
x와 y 모두에 대해 두 플롯 의 하한 을 수동으로 설정하고 싶지만 상한 은 Seaborn 기본값으로 둡니다 . 다음은 간단한 예입니다.
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)
그러면 다음이 출력됩니다.
그러나이 예에서는 xlim과 ylim을 (0, *)으로하고 싶습니다. sns.plt.ylim 및 sns.plt.xlim을 사용해 보았지만 오른쪽 플롯에만 영향을 미칩니다. 예:
sns.plt.ylim(0,)
sns.plt.xlim(0,)
FacetGrid의 각 플롯에 대한 xlim 및 ylim에 어떻게 액세스 할 수 있습니까?
numpy.random
모듈에 익숙해지면 무작위 데이터를 생성하는 데 많은 시간을 절약 할 수 있습니다 (매우 유용한 작업이 될 수 있습니다!). 예를 들어, 당신은 얻을 수base_x
와base_y
함께base_x = np.random.rand(n); base_y = base_x * 2
.y
변수는 다음과 유사 벡터화 작업을 생성 할 수 있습니다.