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

Matplotlib에서 흐릿한 점을 그리는 방법은 무엇입니까?

<시간/>

matplotlib에서 흐릿한 점을 표시하려면 다음 단계를 수행할 수 있습니다. -

  • Figure 크기를 설정하고 서브플롯 사이와 주변의 패딩을 조정합니다.

  • 새 그림을 만들거나 기존 새 그림을 활성화하십시오.

  • ax1 추가 하위 플롯 배열의 일부로 그림에.

  • 먼저 마커를 흐리게 만들 수 있습니다.

  • X 및 Y 축 스케일을 설정하고 축을 끕니다.

  • 파일에 마커를 저장하고 해당 이미지를 로드하여 흐리게 처리한 후 플로팅합니다.

  • 이전 그림인 fig1을 닫습니다. .

  • 새 그림을 만들거나 기존 그림을 활성화합니다(fig2). .

  • 임의의 데이터 포인트 x 및 y를 생성합니다.

  • 가우시안 필터를 적용하여 흐리게 하려면 현재 축에 해당 아티스트를 추가하세요.

  • ax2에서 X 및 Y축 배율을 설정합니다. .

  • 그림을 표시하려면 show()를 사용하세요. 방법.

예시

import matplotlib.pyplot as plt
from scipy import ndimage
from matplotlib.image import BboxImage
from matplotlib.transforms import Bbox, TransformedBbox
import numpy as np

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

fig1 = plt.figure()
ax1 = fig1.add_subplot(111)
ax1.plot(0.5, 0.5, 'd', ms=200)
ax1.set_ylim(0, 1)
ax1.set_xlim(0, 1)
plt.axis('off')
fig1.savefig('marker.png')

marker = plt.imread('marker.png')
plt.close(fig1)

fig2 = plt.figure()
ax2 = fig2.add_subplot(111)

x = 8 * np.random.rand(10) + 1
y = 8 * np.random.rand(10) + 1

sigma = np.arange(10, 60, 5)

for xi, yi, sigmai in zip(x, y, sigma):
   markerBlur = ndimage.gaussian_filter(marker, sigmai)
   bb = Bbox.from_bounds(xi, yi, 1, 1)
   bb2 = TransformedBbox(bb, ax2.transData)
   bbox_image = BboxImage(bb2,norm=None,origin=None, clip_on=False)
   bbox_image.set_data(markerBlur)
   ax2.add_artist(bbox_image)

ax2.set_xlim(0, 10)
ax2.set_ylim(0, 10)

plt.show()

출력

Matplotlib에서 흐릿한 점을 그리는 방법은 무엇입니까?