파이썬 시각화의 마법: 이중축 차트 만들기 완벽 가이드 (2024)
데이터를 보는 새로운 시각, 이중축 차트의 매력에 빠져보신 적 있으신가요? 파이썬 시각화는 더 이상 전문가들만의 영역이 아닙니다. 오늘은 여러분과 함께 파이썬을 사용하여 멋진 차트를 만드는 여정을 떠나보려고 합니다.

이중축 차트의 이해
이중축 차트는 서로 다른 스케일을 가진 데이터를 하나의 그래프에서 효과적으로 표현할 수 있게 해주는 강력한 시각화 도구입니다. 주식 가격과 거래량처럼 범위가 매우 다른 데이터를 동시에 표현할 때 특히 유용하죠.
파이썬 시각화 코드
import matplotlib.pyplot as plt
import numpy as np
# 데이터 준비
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = 100 * np.cos(x)
# 그래프 생성
fig, ax1 = plt.subplots(figsize=(10, 6))
# 첫 번째 y축 설정
color = 'tab:blue'
ax1.set_xlabel('X axis')
ax1.set_ylabel('First Y axis', color=color)
line1 = ax1.plot(x, y1, color=color, label='Sin')
ax1.tick_params(axis='y', labelcolor=color)
# 두 번째 y축 생성
ax2 = ax1.twinx()
color = 'tab:red'
ax2.set_ylabel('Second Y axis', color=color)
line2 = ax2.plot(x, y2, color=color, label='Cos')
ax2.tick_params(axis='y', labelcolor=color)
plt.title('Python Visualization: Dual Axis Chart Example')
plt.show()이중축 차트 사용 시 주의사항
이중축 차트는 강력한 도구이지만, 신중하게 사용해야 합니다. 다음은 이중축 차트 작성 시 고려해야 할 핵심 주의사항입니다:
데이터 스케일 관리
- 축척 설정을 신중하게 해야 합니다. 잘못된 축척은 데이터 해석을 왜곡할 수 있습니다.
- 두 데이터 시리즈의 관계가 명확히 드러나도록 스케일을 조정해야 합니다.
시각적 명확성
- 각 축과 데이터 시리즈는 확실히 구분되는 색상을 사용합니다.
- 범례 위치를 적절히 배치하여 가독성을 확보합니다.
- 그리드 라인을 추가하여 데이터 읽기 용이성을 높입니다.
대안 고려
- 데이터 시리즈가 너무 다른 경우, 별도의 차트로 분리하는 것을 고려합니다.
- 인덱스 차트나 정규화된 값을 사용하는 것도 좋은 대안이 될 수 있습니다.
활용 사례
파이썬 시각화 기법 중 이중축 차트는 다양한 분야에서 유용하게 활용됩니다. 특히 다음과 같은 상황에서 그 가치가 돋보입니다:
주식 시장 분석
- 주가와 거래량을 동시에 표시하여 가격 변동과 거래 활동의 관계를 파악할 수 있습니다.
- 주가와 기술적 지표(예: MACD, RSI)를 함께 표시하여 추세와 모멘텀을 분석할 수 있습니다
기상 데이터 분석
- 기온과 강수량을 동시에 표시하여 날씨 패턴을 종합적으로 파악할 수 있습니다.
- 기온과 습도를 함께 표시하여 체감온도나 불쾌지수와 같은 복합적인 기상 현상을 분석할 수 있습니다.
경제 지표 분석
- GDP와 실업률의 관계를 시각화하여 경제 성장과 고용 시장의 연관성을 파악할 수 있습니다.
- 물가상승률과 금리를 동시에 표시하여 통화 정책의 효과를 분석할 수 있습니다.
마케팅 성과 분석
- 광고 지출과 매출액을 동시에 표시하여 마케팅 효율성을 평가할 수 있습니다.
- 고객 유입량과 전환율을 함께 표시하여 마케팅 캠페인의 효과를 분석할 수 있습니다.
에너지 소비 분석
- 전력 소비량과 외부 기온을 동시에 표시하여 날씨가 에너지 수요에 미치는 영향을 파악할 수 있습니다.
- 재생 에너지 생산량과 화석 연료 사용량을 비교하여 에너지 전환 추세를 분석할 수 있습니다.
이중축 차트는 서로 다른 단위나 스케일을 가진 데이터를 효과적으로 비교할 수 있게 해주어, 복잡한 관계를 직관적으로 이해하는 데 도움을 줍니다. 그러나 사용 시 축척 설정에 주의를 기울여 데이터 해석이 왜곡되지 않도록 해야 합니다.
# 또다른 예시

#코드 블록
import matplotlib.pyplot as plt
import numpy as np
# 데이터 준비
x = np.arange(0, 10, 1)
y1 = np.random.randint(1, 10, size=10)
y2 = np.random.randint(10, 100, size=10)
# 그래프 생성
fig, ax1 = plt.subplots(figsize=(10, 6))
# 첫 번째 y축 설정 (막대 그래프)
color = 'tab:purple'
ax1.set_xlabel('X axis')
ax1.set_ylabel('First Y axis', color=color)
ax1.bar(x, y1, color=color, alpha=0.6, label='Data 1')
ax1.tick_params(axis='y', labelcolor=color)
# 두 번째 y축 생성 (선 그래프)
twin_ax = ax1.twinx()
color = 'tab:pink'
twin_ax.set_ylabel('Second Y axis', color=color)
twin_ax.plot(x, y2, color=color, marker='o', label='Data 2')
twin_ax.tick_params(axis='y', labelcolor=color)
# 제목 및 범례 설정
plt.title('Dual Axis Chart Example: Bar and Line Graph')
fig.tight_layout()
plt.show()# 코드 해설
- 필요한 라이브러리(matplotlib, numpy)를 임포트합니다.
- NumPy를 사용하여 x축 데이터와 두 개의 y축 데이터(y1, y2)를 생성합니다.
plt.subplots()를 사용하여 그래프 객체와 첫 번째 축(ax1)을 생성합니다.- 첫 번째 y축에 대한 설정을 합니다:
- 보라색 막대 그래프로 y1 데이터를 표시합니다.
- x축과 y축 레이블을 설정합니다.
ax1.twinx()를 사용하여 두 번째 y축(twin_ax)을 생성합니다:- 분홍색 선 그래프로 y2 데이터를 표시합니다.
- 두 번째 y축 레이블을 설정합니다.
- 그래프 제목을 설정하고,
tight_layout()으로 레이아웃을 조정한 후 그래프를 표시합니다.
# 용어 해설
- 이중축 차트 (Dual Axis Chart): 하나의 그래프에 두 개의 y축을 사용하여 서로 다른 스케일이나 단위를 가진 데이터 시리즈를 동시에 표현하는 차트 유형.
- matplotlib: Python 프로그래밍 언어를 위한 데이터 시각화 라이브러리로, 다양한 유형의 그래프와 차트를 생성할 수 있게 해주는 도구.
- NumPy: 수치 계산을 위한 Python 라이브러리로, 대규모 다차원 배열과 행렬을 효율적으로 처리할 수 있게 해주는 도구.
- plt.subplots(): matplotlib에서 새로운 Figure(그림)와 하나 이상의 Axes(축)를 생성하는 함수.
- ax1.twinx(): 기존 축과 x축을 공유하면서 새로운 y축을 생성하는 matplotlib 메서드. 이중축 차트를 만들 때 사용됨.
- tight_layout(): matplotlib에서 그래프 요소들 사이의 간격을 자동으로 조정하여 겹치지 않도록 하는 함수.
- 축척 (Scale): 그래프에서 데이터 값을 표현하는 단위나 범위. 이중축 차트에서는 각 축마다 다른 축척을 사용할 수 있음.
- 정규화 (Normalization): 서로 다른 범위의 데이터를 공통된 스케일로 변환하는 과정. 이중축 차트의 대안으로 사용될 수 있음.
이런 차트에 관심이 있으신 분은 파이썬으로 시각화 할 수 있는 특이한 그래프에도 관심이 많으시지 않나요? 파이썬 시각화로 성적 변화 비교 그래프 만들기: 점수 상승/하락 색상 구분 포스트를 통해서 독특한 그래프를 만나보세요!






