Python
 Computer >> コンピューター >  >> プログラミング >> Python

Matplotlibで2本の線の間の角度をプロットする最良の方法


Matplotlibで2つの線の間の角度をプロットする最良の方法は、 Arcを使用することです。 角度弧を作成してその間の角度をプロットするクラス。

ステップ

  • 図のサイズを設定し、サブプロット間およびサブプロットの周囲のパディングを調整します。
  • figure()を使用して、新しいフィギュアを作成するか、既存のフィギュアをアクティブにします メソッド。
  • '〜.axes.Axes'を追加します add_subplot()を使用してサブプロット配置の一部として図に追加 メソッド。
  • 2Dラインインスタンスをl1として作成します およびl2
  • 現在の軸に線を追加します。
  • 角度をプロットするには、楕円弧を返すユーザー定義のメソッドを呼び出します。弧長は、線の傾きを使用して作成できます。
  • アーティストを追加します。つまり、アーク add_patch()を使用する メソッド。
  • 図を表示するには、 show()を使用します メソッド。

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で2本の線の間の角度をプロットする最良の方法


  1. 2つのSeabornlmplotを並べてプロットする方法(Matplotlib)?

    Seabornで2つのグラフを並べてプロットするには、次の手順を実行できます- 2つのグラフを作成するには、 nrows =1、ncols =2を使用できます。 フィギュアサイズ(7、7)。 キーcol1を使用してデータフレームを作成します およびcol2 、パンダを使用 。 countplot()を使用します バーを使用して、各カテゴリのビンの観測数を表示します。 サブプロット間およびサブプロットの周囲のパディングを調整します。 図を表示するには、 show()を使用します メソッド。 例 import pandas as pd import numpy

  2. Matplotlibを使用して2つの点線をプロットし、マーカーを設定するにはどうすればよいですか?

    このプログラムでは、matplotライブラリを使用して2本の線をプロットします。コーディングを開始する前に、まず次のコマンドを使用してmatplotlibライブラリをインポートする必要があります- Import matplotlib.pyplot as plt Pyplotは、matplotlibをMATLABのように機能させるコマンドスタイル関数のコレクションです。 アルゴリズム Step 1: Import matplotlib.pyplot Step 2: Define line1 and line2 points. Step 3: Plot the lines using the p