반응형
250x250
Notice
Recent Posts
Recent Comments
DATA101
[Python] twinx를 활용한 x축 공유(이중축) 그래프 시각화 본문
728x90
반응형
👨💻 들어가며
본 포스팅에서는 아래의 그림처럼, 파이썬 twinx를 활용하여 x축을 공유하는 2개 이상의 그래프를 한 번에 시각화하는 방법을 소개합니다.
Step 1. 패키지 import
데이터 시각화를 위한 matplotlib 패키지를 설치하고 import 합니다.
import matplotlib.pyplot as plt
🎯 패키지 설치방법
더보기
pip install matplotlib
Step 2. 데이터셋 준비
저는 연도별 데이터 건수를 저장한 series 타입의 데이터를 활용할 계획입니다.
1) 첫 번째 데이터셋
2) 두 번째 데이터셋
Step 3. x축, y축 데이터 분리
x축과 y축에 각각 시각화할 데이터를 각각 나눕니다.
x1 = dataset_pos_y.index
y1 = dataset_pos_y
x2 = dataset_neg_y.index
y2 = dataset_neg_y
Step 4. 데이터 시각화
twinx()는 x축을 공유하고, twiny()는 y축을 공유합니다.
3개 이상의 그래프를 시각화할 때에도 마찬가지로, ax3 = ax.twinx()와 같이 선언해 준 후 시각화 코드를 작성하시면 됩니다.
fig, ax = plt.subplots()
fig.set_size_inches(60, 24)
#================= 1번째 데이터 시각화 =================#
# 선 그래프 시각화 옵션 | color: 선 색깔, linewidth: 선 굵기, marker 선택
line1 = ax.plot(y1, 'o-', label = 'positive', color = 'blue', linewidth = 3)
# 값 출력
for i, v in enumerate(x1):
plt.text(v, y1[i], y1[i],
fontsize = 35, # 텍스트 크기
color = 'blue', # 텍스트 색깔
horizontalalignment ='center', # 수평정렬 옵션
verticalalignment = 'bottom', # 수직정렬 옵션
rotation = 15)
plt.xticks(x1, fontsize = 40, rotation = 15) # x축 눈금
plt.yticks(fontsize = 35) # y축 눈금
plt.xlabel('Year', fontsize = 50) # x축 이름
plt.ylabel('Positive(CNT)', fontsize = 40) # y축 이름
#==================================================#
#================= 2번째 데이터 시각화 =================#
ax2 = ax.twinx()
line2 = ax2.plot(y2, '.-', label = 'negative', color = 'r', linewidth = 3)
for i, v in enumerate(x2):
plt.text(v, y2[i]+25, y2[i],
fontsize = 35,
color = 'red',
horizontalalignment ='center',
verticalalignment = 'bottom',
rotation = 15)
plt.yticks(fontsize = 35)
plt.ylabel('Negative(CNT)', fontsize = 50)
#==================================================#
plt.title('Review Trend', fontsize = 70) # 그래프 제목
# 범례 표시
lines = line1 + line2
labels = [line.get_label() for line in lines]
ax.legend(lines, labels, loc = 0, fontsize = 50)
ax.grid() # 그리드
plt.show()
시각화 결과
오늘은 파이썬 twinx을 활용하여 x축을 공유하는 그래프를 동시에 시각화하는 방법을 알아봤습니다.
포스팅 내용에 오류가 있다면 아래에 댓글 남겨주시길 바랍니다.
그럼 오늘도 즐거운 하루 보내시길 바랍니다 :)
고맙습니다😊
728x90
반응형
'AI & 빅데이터 > 데이터 분석(Python)' 카테고리의 다른 글
[Python] matplotlib.pyplot.savefig 파일 저장 시 여백 제거 방법 (0) | 2024.04.30 |
---|---|
[Python] subplot을 활용한 여러 개의 그래프 동시 출력하기 (0) | 2022.09.18 |
[Python] 주 단위 데이터 그룹화 및 시각화하기 (0) | 2022.08.31 |
[Python] 월 단위 데이터 그룹화 및 시각화하기 (0) | 2022.08.31 |
[Python] 월 정보, 요일 정보, 시간 정보, 특정 기간 데이터 추출하기 (0) | 2022.08.17 |