Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีการพล็อตจุดเบลอใน Matplotlib?


ในการพล็อตจุดที่เบลอใน matplotlib เราสามารถทำตามขั้นตอนต่อไปนี้ -

  • กำหนดขนาดรูปและปรับช่องว่างภายในระหว่างและรอบๆ แผนผังย่อย

  • สร้างตัวเลขใหม่หรือเปิดใช้งานตัวเลขใหม่ที่มีอยู่

  • เพิ่ม ax1 ไปที่ร่างซึ่งเป็นส่วนหนึ่งของการจัดโครงเรื่องย่อย

  • ขั้นแรก เราสามารถสร้างเครื่องหมาย กล่าวคือ ให้เบลอได้

  • ตั้งค่ามาตราส่วนแกน X และ Y ปิดแกน

  • บันทึกเครื่องหมายในไฟล์ และโหลดภาพนั้นเพื่อลงจุดหลังจากเบลอ

  • ปิดตัวเลขก่อนหน้า fig1 .

  • สร้างตัวเลขใหม่หรือเปิดใช้งานตัวเลขที่มีอยู่ fig2 .

  • สร้างจุดข้อมูลแบบสุ่ม x และ y

  • ใช้ตัวกรองเกาส์เซียนเพื่อทำให้เบลอ ให้เพิ่มศิลปินนั้นบนแกนปัจจุบัน

  • ตั้งค่ามาตราส่วนแกน X และ Y บน ax2 .

  • หากต้องการแสดงรูป ให้ใช้ 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?