Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Matplotlib에서 수천 개의 원을 빠르게 그리는 방법은 무엇입니까?

<시간/>

Matplotlib에서 수천 개의 원을 빠르게 표시하려면 matplotlib.collections를 사용해야 합니다. . 이 경우 CircleCollection을 사용합니다. .

단계

  • pyplot과 함께 matplotlib에서 컬렉션 패키지 가져오기 및 numpy .
  • 그림 크기를 설정하고 서브플롯 사이 및 주변 여백을 조정합니다.
  • 변수 초기화 "num" 작은 원의 수 및 "크기" 원 크기용
  • 서클 패치 목록을 만듭니다.
  • 현재 축에 원형 패치 아티스트를 추가합니다.
  • 축의 여백을 설정합니다.
  • 그림을 표시하려면 show()를 사용하세요. 방법.

예시

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.collections as mc

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

num = 1000
sizes = 50 * np.random.random(num)
xy = 10 * np.random.random((num, 2))

patches = [plt.Circle(center, size) for center, size in zip(xy, sizes)]

fig, ax = plt.subplots()

collection = mc.CircleCollection(sizes, offsets=xy, transOffset=ax.transData, color='green')
ax.add_collection(collection)

ax.margins(0.01)

plt.show()

출력

다음 출력을 생성합니다.

Matplotlib에서 수천 개의 원을 빠르게 그리는 방법은 무엇입니까? Matplotlib에서 수천 개의 원을 빠르게 그리는 방법은 무엇입니까?