Matplotlib में ब्लर्ड पॉइंट्स प्लॉट करने के लिए, हम निम्न चरण अपना सकते हैं:
- फिगर साइज सेट करें और सबप्लॉट्स के बीच और आसपास पैडिंग एडजस्ट करें।
- एक नया फिगर बनाएं या मौजूदा नया फिगर एक्टिवेट करें।
- सबप्लॉट व्यवस्था के हिस्से के रूप में फिगर में एक 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()
आउटपुट
