1. 여러 개의 그래프 그리기
- 시각화 할 변수 선택
- fig 만들기
- fig=plt.figure(figsize=(20,10), dpi = 100) : matplotlib의 figure를 생성하고, 그림의 크기를 가로 20 인치, 세로 10 인치로 설정하며, 해상도는 100 dpi로 설정합니다.
- axs=fig.subplots(2,4) : 2x4 형태의 서브플롯 그리드를 생성합니다. 즉, 2행 4열의 그리드를 생성하여 총 8개의 그래프를 그릴 수 있는 공간을 만듭니다.
- lm_features 변수에 각 그래프에 사용할 특징들을 리스트로 정의합니다.
fig=plt.figure(figsize=(20,10), dpi = 100)
axs=fig.subplots(2,4)
lm_features = ['temperature', 'pressure', 'humidity', 'wind_speed',
'wind_direction', 'precipitation', 'snowing', 'cloudiness']
2. 반복문으로 그래프 표현하기
- 반복문을 사용하여 여러 개의 그래프 그리기
- enumerate를 이용, Index 값을 4로 나눈 몫과 나머지로 Row, col 지정
- for i,j in enumerate(lm_features): : 각 특징별로 그래프를 그리기 위해 lm_features 리스트를 반복하며 인덱스와 특징 이름을 얻습니다.
- 각 그래프의 x축에 사용할 두 가지 레이블을 정의합니다. 여기서는 'target>high'와 'target<=high'를 사용합니다.
- y 변수에 각 레이블에 대한 해당 특징의 평균 값을 구하여 리스트로 저장합니다.
- row = int(i/4) 와 col = i%4를 사용하여 그래프가 그려질 위치를 결정합니다.
- axs[row][col].bar(x, y)를 사용하여 막대 그래프를 그립니다.
- axs[row][col].set_title("target X " + lm_features[i], fontsize= 20)를 사용하여 각 그래프의 제목을 설정합니다.
- axs[row][col].set_ylabel(lm_features[i]+"의 평균", fontsize= 15)를 사용하여 각 그래프의 y축 레이블을 설정합니다.
- axs[row][col].set_xticks(['target>high','target<=high'])와 axs[row][col].set_xticklabels(['target>high','target<=high'], fontsize = 17)를 사용하여 x축의 눈금 레이블을 설정합니다.
- fig.tight_layout()를 호출하여 그래프들 사이의 간격을 조정합니다.
- plt.show()를 사용하여 그래프를 출력합니다. 결과적으로, 이 코드는 각 특징(온도, 압력, 습도 등)에 대해 'target>high'와 'target<=high'인 경우의 평균 값을 비교하는 막대 그래프를 2x4 형태의 그리드로 출력합니다.
for i,j in enumerate(lm_features):
x = ['target>high','target<=high']
y = [train[train['target']>high][j].mean(), train[train['target']<=high][j].mean()]
row = int(i/4)
col = i%4
axs[row][col].set_title("target X " + lm_features[i], fontsize= 20)
axs[row][col].set_ylabel(lm_features[i]+"의 평균", fontsize= 15)
axs[row][col].set_xticks([0,1])
axs[row][col].set_xticklabels(['target>high','target<=high'], fontsize = 17)
axs[row][col].bar(x, y)
fig.tight_layout()
plt.show()
728x90
'Python > Data Visualization' 카테고리의 다른 글
[시각화] 크롤링 결과 워드클라우드 시각화 (0) | 2023.10.04 |
---|---|
[시각화] 한글 폰트 코드 정리 (0) | 2023.10.04 |
[scatter_matrix] 여러 피쳐간 산점도 한번에 보기 (0) | 2023.08.31 |
시각화 준비용 코드 (한글폰트 설정 & 경고 무시) (0) | 2023.08.30 |
랜덤 포레스트 모델 검증 시각화 (0) | 2023.08.30 |