Matplotlib에서 산점도의 범례를 만드는 방법
Suraj Joshi
2023년1월30일
범례는 단순히 그림의 다양한 요소에 대한 설명입니다. 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()
출력:
그림에는 두 개의 개별 산점도가 있습니다. 하나는 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의 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
산점도에 대한 범례를 만들려면scatter()
메서드 대신plot()
메서드를 사용합니다. 이는legend()
메서드가Axes3D
인스턴스의scatter()
메서드가 반환 한Patch3DCollection
을 지원하지 않기 때문입니다.
작가: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn