কম্পিউটার

Matplotlib এ দুটি লাইনের মধ্যে একটি কোণ প্লট করার সর্বোত্তম উপায়


ম্যাটপ্লটলিবে দুটি লাইনের মধ্যে একটি কোণ তৈরি করার সর্বোত্তম উপায় হল আর্ক ব্যবহার করা মাঝখানে কোণ প্লট করার জন্য একটি কোণ চাপ তৈরি করতে ক্লাস।

পদক্ষেপ

  • চিত্রের আকার সেট করুন এবং সাবপ্লটের মধ্যে এবং চারপাশে প্যাডিং সামঞ্জস্য করুন।
  • একটি নতুন চিত্র তৈরি করুন বা চিত্র() ব্যবহার করে একটি বিদ্যমান চিত্র সক্রিয় করুন পদ্ধতি।
  • একটি '~.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()

আউটপুট

Matplotlib এ দুটি লাইনের মধ্যে একটি কোণ প্লট করার সর্বোত্তম উপায়


  1. Matplotlib-এ অক্ষ ছাড়াই 3D বার প্লট করুন

  2. কিভাবে Matplotlib এ ওভারল্যাপিং লাইন প্লট করবেন?

  3. কিভাবে দুটি সামুদ্রিক এলএমপ্লট পাশাপাশি প্লট করবেন (ম্যাটপ্লটলিব)?

  4. কিভাবে Matplotlib ব্যবহার করে দুটি ডটেড লাইন প্লট এবং মার্কার সেট করবেন?