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

Python Matplotlib로 각 X 값에 여러 Y 값을 표시하는 산점도 그리기

각 X 값에 대해 여러 Y 값을 가지는 산점도(scatter plot)를 그리려면 numpy를 사용해 x와 y 데이터 포인트를 생성한 뒤, zip()으로 두 데이터를 묶어 함께 순회하면서 산점도를 그리면 됩니다.

구현 단계

  • 그림(figure) 크기를 설정하고 서브플롯 주변과 사이의 패딩을 조정합니다.
  • numpy를 사용하여 무작위 x 데이터와 y 데이터 포인트를 생성합니다.
  • zip()으로 xs와 ys를 묶은 후, 함께 반복(iterate)합니다.
  • 각 x, y 값에 대해 산점도를 그립니다.
  • show() 메서드를 사용해 그림을 화면에 표시합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
xs = np.random.rand(100)
ys = np.random.rand(100)
for x, y in zip(xs, ys):
    plt.scatter(x, y, cmap="copper")
plt.show()

실행 결과

Python Matplotlib로 각 X 값에 여러 Y 값을 표시하는 산점도 그리기

코드 설명

이 예제에서는 np.random.rand(100)을 통해 0과 1 사이의 균일 분포를 따르는 난수 100개씩을 x축과 y축 데이터로 생성합니다. 이후 zip() 함수가 두 배열을 짝지어 주므로 for 루프 안에서 각 (x, y) 좌표마다 plt.scatter()를 호출할 수 있습니다.

참고로 cmap="copper" 인자는 컬러맵을 지정하는 옵션으로, 점의 색상에 변화를 주고 싶을 때 유용합니다. 다만 각 점을 개별적으로 호출하는 방식보다는 한 번에 plt.scatter(xs, ys)처럼 전체 배열을 전달하는 것이 성능 면에서 더 효율적이라는 점도 알아두면 좋습니다.