Matplotlib에서 반쪽은 검정색, 반쪽은 흰색으로 나뉜 원을 그리려면 Wedge(부채꼴) 패치를 두 개 사용하면 됩니다. 하나는 0도에서 180도까지, 다른 하나는 180도에서 360도(0도)까지의 영역을 서로 다른 색으로 채우는 방식입니다.
구현 단계
- 그림 크기를 설정하고 서브플롯 주변의 여백을 조정합니다.
- figure와 subplot을 생성합니다.
- 호의 시작 각도와 끝 각도를 정의하는 theta1, theta2 값을 초기화합니다.
- Wedge 인스턴스 두 개를 만들어 현재 축(ax)에 추가합니다.
- 축 범위를 조정해 가로세로 비율을 동일하게 설정합니다.
- x축과 y축의 표시 범위를 지정합니다.
- show() 메서드를 호출하여 그림을 화면에 출력합니다.
예제 코드
import matplotlib.pyplot as plt
from matplotlib.patches import Wedge
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
fig, ax = plt.subplots()
theta1, theta2 = 0, 0 + 180
radius = 2
center = (0, 0)
w1 = Wedge(center, radius, theta1, theta2, fc='black', edgecolor='black')
w2 = Wedge(center, radius, theta2, theta1, fc='white', edgecolor='black')
for wedge in [w1, w2]:
ax.add_artist(wedge)
ax.axis('equal')
ax.set_xlim(-5, 5)
ax.set_ylim(-5, 5)
plt.show()코드 설명
위 코드에서 Wedge(center, radius, theta1, theta2, fc, edgecolor)는 중심 좌표, 반지름, 시작 각도, 끝 각도, 채우기 색상(fc), 테두리 색상(edgecolor)을 인자로 받습니다. 첫 번째 Wedge(w1)는 0°~180° 구간을 검정색으로 채우고, 두 번째 Wedge(w2)는 180°~360° 구간을 흰색으로 채웁니다. 두 부채꼴을 합치면 완전한 원이 되며, 반원마다 색이 달라져 반 검정·반 흰색 원이 완성됩니다.
ax.axis('equal')을 설정하면 x축과 y축의 눈금 간격이 동일해져 원이 찌그러지지 않고 정확한 원형으로 표시됩니다. 또한 set_xlim과 set_ylim으로 축 범위를 -5에서 5까지 지정해 원이 화면 중앙에 적절히 배치되도록 했습니다.
실행 결과
코드를 실행하면 왼쪽 반원은 검정색, 오른쪽 반원은 흰색으로 칠해진 원이 출력되며, 각 반원의 경계에는 검정색 테두리가 둘러져 있습니다.