본문 바로가기
Python/matplotlib

matplotlib UserWarning: 비어 있지 않은 마커에 대해 edgecolor를 전달했습니다 오류 해결하기

by PySun 2024. 11. 17.
반응형

소개

matplotlib을 사용하다 보면 'UserWarning: 비어 있지 않은 마커에 대해 edgecolor를 전달했습니다'라는 경고를 접할 수 있습니다. 이 오류는 마커에 대한 설정을 잘못했을 때 발생합니다. 기존에 'edgecolor'를 설정했지만 마커가 비어 있을 때 이 경고가 발생하기 때문에, 어떻게 해결해야 할지 고민이 될 것입니다. 이번 글에서는 이 문제의 원인과 해결 방법을 알아보겠습니다.

에러 발생 예시 코드

먼저, 'UserWarning: 비어 있지 않은 마커에 대해 edgecolor를 전달했습니다' 경고가 발생할 수 있는 간단한 예시 코드를 살펴봅시다.

import matplotlib.pyplot as plt

# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 1]

# 점 그래프 그리기 (비어 있는 마커)
plt.scatter(x, y, marker='o', facecolor='none', edgecolor='red')
plt.show()

에러 해결 방법

1. 마커의 facecolor 설정 변경

가장 간단한 해결 방법은 마커의 'facecolor'를 'none'으로 설정하지 않는 것입니다. 다음과 같이 설정하면 경고가 발생하지 않습니다.

import matplotlib.pyplot as plt

# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 1]

# 점 그래프 그리기 (facecolor 설정)
plt.scatter(x, y, marker='o', facecolor='blue', edgecolor='red')
plt.show()

2. 비어 있는 마커 상태 확인

마커가 비어 있지 않을 때에만 'edgecolor'를 설정할 수 있도록 조건을 걸어 경고를 방지하는 방법도 있습니다.

import matplotlib.pyplot as plt

# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 1]

# 조건적으로 edgecolor 설정
facecolor = 'none'
if facecolor != 'none':
    edgecolor = 'red'
else:
    edgecolor = 'blue'

plt.scatter(x, y, marker='o', facecolor=facecolor, edgecolor=edgecolor)
plt.show()

마무리

이번 글에서는 matplotlib에서 발생하는 'UserWarning: 비어 있지 않은 마커에 대해 edgecolor를 전달했습니다' 경고에 대한 간단한 해결 방법을 살펴보았습니다. 마커의 'facecolor'를 적절히 설정하거나 조건문을 사용하여 경고를 피할 수 있습니다. 그래프를 그릴 때는 이런 작은 부분에도 주의하여 더 나은 시각화를 경험해 보시길 바랍니다.

반응형