Matplotlib에서 산점도의 범례를 만드는 방법

  1. Matplotlib의 2D 산점도에 범례 추가
  2. Matplotlib의 3D 산점도에 범례 추가

범례는 단순히 그림의 다양한 요소에 대한 설명입니다. matplotlib.pyplot.legend 함수를 사용하여 산점도 범례를 생성 할 수 있습니다.

Matplotlib의 2D 산점도에 범례 추가

import numpy as np
import matplotlib.pyplot as plt 

x=[1,2,3,4,5]

y1=[i**2 for i in x]
y2=[2*i+1 for i in x]

plt.scatter(x,y1,marker="x",color='r',label="x**2")
plt.scatter(x,y2,marker="o",color='b',label="2*x+1")
plt.legend()
plt.show()

산출:

2D 산점도에 범례 추가

그림에는 두 개의 개별 산점도가 있습니다. 하나는 x로 표시되고 다른 하나는 o표시로 표시됩니다. 범례를 생성하는 동안 태그로 사용되는 각 산점도에 label을 할당합니다. 그런 다음legend()함수를 사용하여 Figure에 범례를 만들고 마지막으로show()메서드를 사용하여 전체 Figure를 표시합니다.

또한 레이블의 튜플을legend()메서드에 인수로 직접 전달하고legend()메서드의loc 매개 변수를 사용하여 범례의 위치를 변경할 수도 있습니다.

import numpy as np
import matplotlib.pyplot as plt 

x=[1,2,3,4,5]

y1=[i**2 for i in x]
y2=[2*i+1 for i in x]

plt.scatter(x,y1,marker="x",color='r')
plt.scatter(x,y2,marker="o",color='b')
plt.legend(("x**2","2*x+1"),loc="center left")
plt.show()

산출:

Matplotlib에서 위치를 지정하는 2D 산점도에 범례 추가

이 프로세스는 두 개의 산점도와 범례가 좌표축 테두리 상자의 왼쪽 중앙에 배치 된 그림을 만듭니다.

Matplotlib의 3D 산점도에 범례 추가

import matplotlib.pyplot as plt

x=[1,2,3,4,5]
y=[2,1,4,5,6]

z1=[i+j for (i,j) in zip(x,y)]
z2=[3*i-j for (i,j) in zip(x,y)]

axes = plt.subplot(111, projection='3d')
axes.plot(x,y,z1,"x",label="x+y")
axes.plot(x,y,z2,"o",label="3*x-y")

plt.legend(loc="upper left")
plt.show()

산출:

3D 산점도에 범례 추가

3D 산점도에 대한 범례를 만들려면scatter()메서드 대신plot()메서드를 사용합니다. 이는legend()메서드가Axes3D 인스턴스의scatter()메서드가 반환 한Patch3DCollection을 지원하지 않기 때문입니다.