Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để vẽ các điểm mờ trong Matplotlib?

Để vẽ các điểm bị mờ trong matplotlib, chúng ta có thể thực hiện các bước sau -

  • Đặt kích thước hình và điều chỉnh phần đệm giữa và xung quanh các ô con.

  • Tạo một hình mới hoặc kích hoạt một hình mới hiện có.

  • Thêm ax1 vào hình như một phần của sự sắp xếp lô phụ.

  • Đầu tiên, chúng ta có thể làm cho một điểm đánh dấu, tức là bị mờ.

  • Đặt tỷ lệ trục X và Y, tắt các trục.

  • Lưu điểm đánh dấu vào một tệp và tải hình ảnh đó để vẽ biểu đồ sau khi làm mờ.

  • Đóng hình trước, fig1 .

  • Tạo một hình mới hoặc kích hoạt một hình hiện có, fig2 .

  • Tạo các điểm dữ liệu ngẫu nhiên, x và y.

  • Áp dụng bộ lọc Gaussian, để làm mờ, hãy thêm nghệ sĩ đó trên các trục hiện tại.

  • Đặt tỷ lệ trục X và Y trên ax2 .

  • Để hiển thị hình này, hãy sử dụng show () phương pháp.

Ví dụ

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()

Đầu ra

Làm thế nào để vẽ các điểm mờ trong Matplotlib?