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

ポイントがcontains_pointメソッド(Matplotlib)よりも速く楕円の内側にあるかどうかを確認します


ポイントがcontains_pointメソッドよりも速く楕円の内側にあるかどうかを確認するには、次の手順を実行します-

  • 図のサイズを設定し、サブプロット間およびサブプロットの周囲のパディングを調整します。
  • 図とサブプロットのセットを作成します。
  • アスペクト比を等しく設定します。
  • numpyを使用してxおよびyデータポイントを作成します。
  • 楕円の中心、高さ、幅、角度を初期化します。
  • スケールのない楕円を取得します。
  • 軸のパッチに「〜.Patch」を追加します。パッチを返します。
  • ポイントが楕円の内側にある場合は、色を「赤」に変更し、それ以外の場合は「緑」に変更します。
  • scatter()を使用してxおよびyデータポイントをプロットします 方法、色付き。
  • 図を表示するには、 show()を使用します メソッド。

import matplotlib.pyplot as plt
import matplotlib.patches as patches
import numpy as np

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

fig, ax = plt.subplots(1)
ax.set_aspect('equal')

x = np.random.rand(100) * 0.5 + 0.7
y = np.random.rand(100) * 0.5 + 0.7

center = (0.7789, 0.7789)
width = 0.45
height = 0.20
angle = 45.
ecl = patches.Ellipse(center, width, height, angle=angle,
fill=False, edgecolor='green', linewidth=5)
ax.add_patch(ecl)

cosine = np.cos(np.radians(180. - angle))
sine = np.sin(np.radians(180. - angle))

xc = x - center[0]
yc = y - center[1]

xct = xc * cosine - yc * sine
yct = xc * sine + yc * cosine

rad_cc = (xct ** 2 / (width / 2.) ** 2) + (yct ** 2 / (height / 2.) ** 2)
colors = np.array(['yellow'] * len(rad_cc))
colors[np.where(rad_cc <=)[0]] = 'red'

ax.scatter(x, y, c=colors, linewidths=0.7)

plt.show()
>

出力

ポイントがcontains_pointメソッド(Matplotlib)よりも速く楕円の内側にあるかどうかを確認します ポイントがcontains_pointメソッド(Matplotlib)よりも速く楕円の内側にあるかどうかを確認します


  1. Matplotlibの円の中にテキストを配置します

    matplotlibの円の中にテキストを配置するには、次の手順を実行できます- figure()を使用して、新しいフィギュアを作成するか、既存のフィギュアをアクティブにします メソッド。 現在の軸にサブプロットメソッドを追加します。 サークルを作成する Circle()を使用するインスタンス クラス。 サークルを追加します プロット上のパス。 テキストを円の中に配置するには、 text()を使用できます。 メソッド。 xlim()を使用してx軸とy軸をスケーリングします およびylim() メソッド。 図を表示するには、 show()を使用します

  2. Pythonで点が長方形の上または内側にあるかどうかを確認します

    左下と右上の2つの点で表される長方形があるとします。この長方形の内側に特定の点(x、y)が存在するかどうかを確認する必要があります。 したがって、入力がbottom_left =(1、1)、top_right =(8、5)、point =(5、4)の場合、出力はTrueになります これを解決するには、次の手順に従います- 関数solve()を定義します。これにはbl、tr、pが必要です blのxおよびpのxblのyおよびpのy