matplotlib로 여러 개의 그래프를 작업할 때, 전역 설정을 바꾸지 않고 특정 그림(figure)에만 스타일을 다르게 적용하고 싶은 경우가 자주 있습니다. 이럴 때 유용한 것이 바로 plt.rc_context()입니다. 이 컨텍스트 관리자(context manager)를 사용하면 rcParams를 일시적으로 변경하고, 블록이 끝나면 원래 설정으로 자동 복원됩니다.
구현 단계
그림 크기(figsize)를 설정하고, 서브플롯 사이와 주변의 여백(padding)을 조정합니다.
샘플 데이터의 개수를 저장할 변수 N을 초기화합니다.
numpy를 사용하여 x, y 데이터 포인트를 생성합니다.
plt.rc_context()를 통해 rcParams를 임시로 변경하는 컨텍스트 관리자를 만듭니다.현재 그림에 첫 번째 서브플롯(인덱스 1)을 추가합니다.
plot()메서드로 x, y 데이터를 그립니다.현재 그림에 두 번째 서브플롯(인덱스 2)을 추가합니다.
plot()메서드로 x, y 데이터를 그립니다.show()메서드로 그림을 화면에 표시합니다.
예제 코드
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
N = 10
x = np.random.rand(N)
y = np.random.rand(N)
with plt.rc_context({"axes.grid": True, "grid.linewidth": 0.75, "lines.linestyle": 'dashed'}):
plt.subplot(121)
plt.plot(x, y)
plt.subplot(122)
plt.plot(x, y)
plt.show()실행 결과
위 코드를 실행하면 다음과 같은 출력이 생성됩니다.

동작 방식 설명
위 예제에서 왼쪽 서브플롯은 with plt.rc_context(...) 블록 안에서 그려졌기 때문에 격자(grid)가 표시되고 점선(dashed) 스타일의 선이 적용됩니다. 반면 오른쪽 서브플롯은 컨텍스트 블록 밖에서 그려졌으므로 기본 rcParams 설정이 그대로 적용되어 격자 없는 실선 그래프가 됩니다.
즉, rc_context 내부에서 변경된 설정은 해당 블록이 종료되는 순간 자동으로 원래 값으로 되돌아가므로, 전역 설정을 오염시키지 않으면서도 그림별로 세밀한 스타일 제어가 가능합니다. 이는 여러 그래프를 한 번에 비교하거나, 발표용·보고서용 그림에만 특정 테마를 적용할 때 특히 유용합니다.