Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib에서 마커에 영향을 주지 않고 오차 막대만 투명하게 만드는 방법

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% 투명하게 렌더링된 그래프가 출력됩니다.