ম্যাটপ্লটলিবে একটি কার্ভের সাথে কার্সার যোগ করতে, আমরা নিম্নলিখিত পদক্ষেপগুলি নিতে পারি -
- চিত্রের আকার সেট করুন এবং সাবপ্লটের মধ্যে এবং চারপাশে প্যাডিং সামঞ্জস্য করুন।
- t তৈরি করুন এবং s numpy ব্যবহার করে ডেটা পয়েন্ট।
- একটি চিত্র এবং সাবপ্লটের একটি সেট তৈরি করুন।
- প্লটে কার্সার পয়েন্ট আপডেট করতে কার্সার ক্লাসের উদাহরণ পান।
- মাউস_ইভেন্টে, মাউসের বর্তমান অবস্থানের x এবং y ডেটা পান।
- x এবং y ডেটা পয়েন্টের সূচকগুলি পান।
- x এবং y অবস্থান সেট করুন।
- টেক্সট অবস্থান সেট করুন এবং agg বাফার এবং মাউস ইভেন্ট পুনরায় আঁকুন।
- প্লট t এবং s প্লট() ব্যবহার করে ডেটা পয়েন্ট পদ্ধতি।
- কিছু অক্ষ বৈশিষ্ট্য সেট করুন।
- চিত্রটি প্রদর্শন করতে, শো() ব্যবহার করুন পদ্ধতি।
উদাহরণ
import matplotlib.pyplot as plt import numpy as np plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True class CursorClass(object): def __init__(self, ax, x, y): self.ax = ax self.ly = ax.axvline(color='yellow', alpha=0.5) self.marker, = ax.plot([0], [0], marker="o", color="red", zorder=3) self.x = x self.y = y self.txt = ax.text(0.7, 0.9, '') def mouse_event(self, event): if event.inaxes: x, y = event.xdata, event.ydata indx = np.searchsorted(self.x, [x])[0] x = self.x[indx] y = self.y[indx] self.ly.set_xdata(x) self.marker.set_data([x], [y]) self.txt.set_text('x=%1.2f, y=%1.2f' % (x, y)) self.txt.set_position((x, y)) self.ax.figure.canvas.draw_idle() else: return t = np.arange(0.0, 1.0, 0.01) s = np.sin(2 * 2 * np.pi * t) fig, ax = plt.subplots() cursor = CursorClass(ax, t, s) cid = plt.connect('motion_notify_event', cursor.mouse_event) ax.plot(t, s, lw=2, color='green') plt.axis([0, 1, -1, 1]) plt.show()
আউটপুট