ম্যাটপ্লটলিবে দুটি লাইনের মধ্যে একটি কোণ তৈরি করার সর্বোত্তম উপায় হল আর্ক ব্যবহার করা মাঝখানে কোণ প্লট করার জন্য একটি কোণ চাপ তৈরি করতে ক্লাস।
পদক্ষেপ
- চিত্রের আকার সেট করুন এবং সাবপ্লটের মধ্যে এবং চারপাশে প্যাডিং সামঞ্জস্য করুন।
- একটি নতুন চিত্র তৈরি করুন বা চিত্র() ব্যবহার করে একটি বিদ্যমান চিত্র সক্রিয় করুন পদ্ধতি।
- একটি '~.axes.Axes' যোগ করুন add_subplot() ব্যবহার করে একটি সাবপ্লট বিন্যাসের অংশ হিসাবে চিত্রে পদ্ধতি।
- l1 হিসাবে 2D লাইন দৃষ্টান্ত তৈরি করুন এবংl2 .
- বর্তমান অক্ষগুলিতে লাইন যোগ করুন।
- কোণ প্লট করতে, একটি ব্যবহারকারী-সংজ্ঞায়িত পদ্ধতি কল করুন যা একটি উপবৃত্তাকার চাপ প্রদান করে। রেখার ঢাল ব্যবহার করে চাপের দৈর্ঘ্য তৈরি করা যেতে পারে..
- একজন শিল্পী যোগ করুন, যেমন, আর্ক add_patch() ব্যবহার করে পদ্ধতি।
- চিত্রটি প্রদর্শন করতে, শো() ব্যবহার করুন পদ্ধতি।
উদাহরণ
from matplotlib import pyplot as plt, patches import math plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True def angle_plot(line1, line2, offset=1.0, color=None, origin=(0, 0), len_x_axis=1, len_y_axis=1): xy1 = line1.get_xydata() xy2 = line2.get_xydata() slope1 = (xy1[1][1] - xy1[0][1]) / float(xy1[1][0] - xy1[0][0]) angle1 = abs(math.degrees(math.atan(slope1))) slope2 = (xy2[1][1] - xy2[0][1]) / float(xy2[1][0] - xy2[0][0]) angle2 = abs(math.degrees(math.atan(slope2))) theta1 = min(angle1, angle2) theta2 = max(angle1, angle2) angle = theta2 - theta1 if color is None: color = line1.get_color() return patches.Arc(origin, len_x_axis * offset, len_y_axis * offset, 0, theta1, theta2, color=color, label=str(angle) + u"\u00b0") fig = plt.figure() ax = fig.add_subplot(1, 1, 1) l1 = plt.Line2D([0, 1], [0, 4], linewidth=1, linestyle="-", color="green") l2 = plt.Line2D([0, 4.5], [0, 3], linewidth=1, linestyle="-", color="red") ax.add_line(l1) ax.add_line(l2) angle = angle_plot(l1, l2, 0.25) ax.add_patch(angle) plt.show()
আউটপুট