Matplotlib으로 그래프를 그릴 때 오차 막대(error bar)만 반투명하게 처리하고 싶지만, 마커(marker)까지 함께 흐려지는 경우가 있습니다. 이때 errorbar()가 반환하는 객체들을 활용하면 오차 막대와 캡(cap)의 알파 값만 별도로 조절할 수 있습니다.
구현 단계
그림 크기를 설정하고 서브플롯 주변과 사이의 여백(padding)을 조정합니다.
데이터로 사용할 리스트 x, y, z를 생성합니다.
오차 막대의 두께를 지정할 변수 error_bar_width = 5를 초기화합니다.
plt.errorbar()를 사용해 y 대 x 값을 선 및 마커와 함께 오차 막대로 플롯합니다.반환된 bars(막대)와 caps(캡) 객체에 대해
set_alpha()로 알파 값을 설정하여 투명도를 조절합니다.plt.show()메서드로 그림을 화면에 표시합니다.
예제 코드
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
x = [1, 3, 5, 7]
y = [1, 3, 5, 7]
z = [4, 5, 1, 4]
error_bar_width = 5
markers, caps, bars = plt.errorbar(x, y, z, capsize=5, elinewidth=error_bar_width,
markeredgewidth=7, fmt='o', ecolor='black', capthick=2)
[bar.set_alpha(0.5) for bar in bars]
[cap.set_alpha(0.5) for cap in caps]
plt.show()핵심 포인트
plt.errorbar()는 세 가지 아티스트 객체를 반환합니다. 첫 번째는 데이터 선과 마커를 담은 ErrorbarContainer, 두 번째는 캡 리스트(caps), 세 번째는 오차 막대 리스트(bars)입니다. 여기서 set_alpha(0.5)를 bars와 caps에만 적용하기 때문에, 마커는 원래 불투명도를 그대로 유지한 채 오차 막대 부분만 자연스럽게 반투명하게 표시됩니다.
실행 결과
위 코드를 실행하면 검은색 마커는 선명하게 유지되고, 오차 막대와 캡만 50% 투명하게 렌더링된 그래프가 출력됩니다.