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

Matplotlib에서 클로버(♣) 기호로 산점도 그리는 방법

Matplotlib에서 산점도(scatter plot)의 마커를 클로버 기호로 표현하고 싶다면, 마커 스타일에 LaTeX 수학 표기법을 활용하면 됩니다. 아래 단계를 따라 하면 손쉽게 구현할 수 있습니다.

구현 단계

  • 그림 크기를 설정하고, 서브플롯 주변과 사이의 여백을 조정합니다.
  • NumPy를 사용해 x, y 데이터 포인트와 마커 크기 s 값을 생성합니다.
  • scatter() 메서드를 사용하여 x, y 좌표에 산점도를 그립니다. 이때 marker 인자에 r'$\clubsuit$'를 지정하면 클로버 기호가 마커로 사용됩니다.
  • X축과 Y축의 라벨을 설정합니다.
  • 범례(legend)를 플롯의 왼쪽 상단에 배치합니다.
  • show() 메서드를 호출하여 그림을 화면에 표시합니다.

예제 코드

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

x = np.arange(0.0, 50.0, 2.0)
y = x ** 1.3 + np.random.rand(*x.shape) * 30.0
s = np.random.rand(*x.shape) * 800 + 500

plt.scatter(x, y, s, c=x, alpha=0.5, marker=r'$\clubsuit$',
            label="Legend", cmap="plasma")

plt.xlabel("X-Axis")
plt.ylabel("Y-Axis")

plt.legend(loc='upper left')

plt.show()

코드 설명

위 코드의 핵심은 marker=r'$\clubsuit$' 부분입니다. Matplotlib는 TeX 수학 표기법을 지원하기 때문에, 문자열 앞에 r(raw string)를 붙이고 $...$ 안에 LaTeX 명령어를 넣으면 다양한 특수 기호를 마커로 사용할 수 있습니다. \clubsuit는 클로버(♣) 기호를 의미합니다.

또한 c=xcmap="plasma" 옵션을 함께 사용하면 x값에 따라 마커 색상이 plasma 컬러맵으로 그라데이션되어 표현되고, alpha=0.5로 마커를 반투명하게 만들어 겹치는 영역도 잘 보이도록 했습니다. 마커 크기 s는 500~1300 범위의 난수로 설정되어 각 점의 크기가 서로 다르게 나타납니다.

실행 결과

코드를 실행하면 x축 방향으로 증가하는 곡선 형태의 데이터가 클로버 모양의 반투명 마커로 표시되며, 각 마커는 크기와 색상이 서로 다르게 렌더링됩니다. 플롯의 왼쪽 상단에는 'Legend'라는 이름의 범례가 함께 표시됩니다.