반응형
패싯 그리드의 xlim 및 ylim 설정 방법
사용 중sns.lmplot
범주형 변수를 사용하여 데이터 집합을 두 그룹으로 나누는 선형 회귀 분석을 표시합니다.
x 및 y 모두에 대해 두 그림 모두에 대해 하한을 수동으로 설정하고 상한은 Seaborn 기본값으로 유지하려고 합니다.다음은 간단한 예입니다.
import pandas as pd
import seaborn as sns
import numpy as np
n = 200
np.random.seed(2014)
base_x = np.random.rand(n)
base_y = base_x * 2
errors = np.random.uniform(size=n)
y = base_y + errors
df = pd.DataFrame({'X': base_x, 'Y': y, 'Z': ['A','B']*(100)})
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,)
패싯 그리드의 각 플롯에 대한 xlim 및 ylim에 액세스하려면 어떻게 해야 합니까?
그lmplot
함수는 a를 반환합니다.FacetGrid
사례.이 개체의 메서드는 다음과 같습니다.set
당신이 통과할 수 있는.key=value
쌍을 구성하면 그리드의 각 Axes 개체에 설정됩니다.
두 번째로, matplotlib에서 Axes 한계의 한 면만 설정할 수 있습니다.None
기본값으로 유지할 값입니다.
이를 종합하면 다음과 같은 이점이 있습니다.
g = sns.lmplot('X', 'Y', df, col='Z', sharex=False, sharey=False)
g.set(ylim=(0, None))
갱신하다
- 위치 인수,
sharex
그리고.sharey
다음으로 시작하는 것은 바람직하지 않습니다.seaborn 0.11
g = sns.lmplot(x='X', y='Y', data=df, col='Z', facet_kws={'sharey': False, 'sharex': False})
g.set(ylim=(0, None))
당신은 도끼 자체를 잡아야 합니다.가장 깨끗한 방법은 마지막 행을 변경하는 것입니다.
lm = sns.lmplot('X','Y',df,col='Z',sharex=False,sharey=False)
그런 다음 축 개체(축 배열)를 잡을 수 있습니다.
axes = lm.axes
그런 다음 축 속성을 조정할 수 있습니다.
axes[0,0].set_ylim(0,)
axes[0,1].set_ylim(0,)
작성:
언급URL : https://stackoverflow.com/questions/25212986/how-to-set-the-xlim-and-ylim-of-a-facetgrid
반응형
'programing' 카테고리의 다른 글
판다 데이터 프레임에 행 삽입 (0) | 2023.08.19 |
---|---|
테스트에 사용자 지정된 ObjectMapper가 사용되지 않음 (0) | 2023.08.19 |
새 줄을 유지하면서 도커 파일에 여러 줄로 명령을 작성하는 방법은 무엇입니까? (0) | 2023.08.19 |
SQL에서 특정 열과 날짜별로 고유한 행을 선택하는 방법은 무엇입니까? (0) | 2023.08.19 |
Oracle 트리거에 임의 매개 변수를 보내는 방법은 무엇입니까? (0) | 2023.08.19 |