MoonNote

반응형
     

 

 

 

예제 01 : 기본 축 제목과 그래프 제목 추가하기

▪ plt.title('Basic Graph with Titles'): 그래프 제목을 추가

plt.xlabel('X-axis')와 plt.ylabel('Y-axis'): X축과 Y축의 제목을 설정

plt.legend(): 라벨(label)이 있는 경우 자동으로 범례를 추가

 

import matplotlib.pyplot as plt
import numpy as np

# 데이터 생성
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 기본 라인 그래프 생성
plt.plot(x, y, label='Sine Wave')

# 축 제목 및 그래프 제목 추가
plt.title('Basic Graph with Titles')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')

# 범례 추가
plt.legend()

plt.show()

 

Result

Example 01 실행 결과

 

 

예제 02 : 레이블과 고급 범례 설정

▪ plt.legend(loc='upper right', fontsize=12, shadow=True, fancybox=True, framealpha=0.7): 범례의 위치, 글꼴 크기, 그림자, 상자 스타일(fancybox), 투명도(framealpha)를 설정

  plt.text(): 특정 좌표에 텍스트 레이블을 추가합니다. ha='center'와 va='bottom'은 각각 수평과 수직 정렬을 설정

  제목과 축 제목의 글꼴 크기(fontsize)와 굵기(fontweight)를 조정하여 더 강한 시각적 효과를 제공

 

import matplotlib.pyplot as plt
import numpy as np

# 데이터 생성
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 두 개의 라인 그래프 생성
plt.plot(x, y1, label='Sine Wave', color='blue', linewidth=2)
plt.plot(x, y2, label='Cosine Wave', color='orange', linewidth=2)

# 그래프 제목, 축 제목 및 레이블 설정
plt.title('Graph with Custom Legends and Labels', fontsize=16, fontweight='bold')
plt.xlabel('X-axis (radians)', fontsize=12)
plt.ylabel('Y-axis (amplitude)', fontsize=12)

# 범례 커스터마이징
plt.legend(loc='upper right', fontsize=12, shadow=True, fancybox=True, framealpha=0.7)

# 각 데이터 포인트에 레이블 추가
for i in range(0, len(x), 20):
    plt.text(x[i], y1[i], f'{y1[i]:.2f}', ha='center', va='bottom', fontsize=10)
    plt.text(x[i], y2[i], f'{y2[i]:.2f}', ha='center', va='top', fontsize=10)

plt.show()

 

Result

Example 02 실행 결과

 

예제 03 : 스타일 설정 및 고급 그래프 꾸미기

▪ plt.style.use('seaborn-darkgrid'): Seaborn의 다크 그리드 스타일을 적용

fig, ax = plt.subplots(figsize=(10, 6)): 그래프의 크기를 설정

ax.grid(True, which='both', linestyle='--', linewidth=0.7): 그리드를 추가하며, which='both'는 메이저와 마이너 그리드 모두에 적용

ax.set_xlim 및 ax.set_ylim: X축과 Y축의 범위를 수동으로 설정

ax.spines: 그래프 테두리(spine)를 커스터마이징하여 상단과 오른쪽 테두리를 없애고, 나머지 테두리의 색상과 두께를 설정

plt.tight_layout(): 그래프가 잘리거나 겹치지 않도록 자동으로 레이아웃을 조정

 

 

import matplotlib.pyplot as plt
import numpy as np

# 스타일 설정
plt.style.use('seaborn-v0_8-darkgrid')  # 스타일 적용

# 데이터 생성
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 그래프 생성
fig, ax = plt.subplots(figsize=(10, 6))  # 그래프 크기 설정
ax.plot(x, y1, label='Sine Wave', color='dodgerblue', linewidth=2, marker='o', markersize=5)
ax.plot(x, y2, label='Cosine Wave', color='tomato', linewidth=2, marker='s', markersize=5)

# 그래프 제목, 축 제목 설정
ax.set_title('Advanced Graph with Style and Customizations', fontsize=18, fontweight='bold', color='darkblue')
ax.set_xlabel('X-axis (radians)', fontsize=14, color='darkgreen')
ax.set_ylabel('Y-axis (amplitude)', fontsize=14, color='darkgreen')

# 그리드 설정
ax.grid(True, which='both', linestyle='--', linewidth=0.7)

# 축 범위 설정
ax.set_xlim([0, 10])
ax.set_ylim([-1.5, 1.5])

# 범례 커스터마이징
ax.legend(loc='lower left', fontsize=12, shadow=True, fancybox=True, framealpha=0.9, borderpad=1)

# 그래프 스타일을 위해 spines 설정 (테두리 꾸미기)
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_color('darkblue')
ax.spines['bottom'].set_color('darkblue')
ax.spines['left'].set_linewidth(1.5)
ax.spines['bottom'].set_linewidth(1.5)

plt.tight_layout()
plt.show()

 

Result

Example 03 실행 결과

 

 

TIP
 
 

ply.style.available로 style 확인 가능

 

 

Matplotlib 함수 모음

 

 

 

 

 

 

 

 

 

 

 

 

※ 이 글이 도움이 되었다면 "👆🏻구독"과 "🤍공감" 버튼을 클릭해주세요. 클릭 한번이 글 쓰는데 큰 힘이 됩니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band