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

mplot3d(matplotlib + python)で選択したオブジェクトのプロパティを取得するにはどうすればよいですか?


matplotlib 3dで選択したオブジェクトのプロパティを取得するには、次の手順を実行します。

ステップ

  • 図のサイズを設定し、サブプロット間およびサブプロットの周囲のパディングを調整します。

  • 新しいフィギュアを作成するか、既存のフィギュアをアクティブにします。

  • 「ax」を追加します サブプロットの配置の一部として図に。

  • ランダムなデータポイントの散布図を作成します。

  • 関数をバインドする*pick_event_method * イベントへ*pick_event *

  • x、yを印刷します およびz イベントの座標。

  • 図を表示するには、 Show()を使用します メソッド。

import matplotlib.pyplot as plt
import numpy as np

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

fig = plt.figure()

ax = fig.add_subplot(111, projection='3d')

# Scatter plot
ax.scatter(np.random.rand(10), np.random.rand(10), np.random.rand(10), c=np.random.rand(10),
   cmap='hot', picker=5, s=100)


# pick_event_method
def pick_event_method(event):
   ind = event.ind[0]
   x, y, z = event.artist._offsets3d
   print(x[ind], y[ind], z[ind])


# Connect pick_event_method with pick_event
fig.canvas.mpl_connect('pick_event', pick_event_method)

plt.show()
に接続します

出力

次の出力が生成されます-

mplot3d(matplotlib + python)で選択したオブジェクトのプロパティを取得するにはどうすればよいですか?

次に、プロットからオブジェクトをクリックすると、コンソールにそれらのポイントの座標が表示されます。

0.29471404722373373 0.7272382336952506 0.551701540876738
0.7393059098968329 0.880733225356321 0.20733995579556608
0.4055966753557102 0.9709122739514328 0.10116103589732084
0.2781962334047674 0.48531626106129566 0.8573607199598575

  1. Tkinterキャンバスでオブジェクトの座標を取得するにはどうすればよいですか?

    Tkinter Canvas Widgetは、アプリケーションにGUI機能を提供します。シェイプの描画、オブジェクトのアニメーション化、およびキャンバス内の既存のアイテムの構成に使用できます。図形を作成するときは常に、Canvasアイテムコンストラクターで図形のサイズと座標を指定する必要があります。キャンバス上のアイテムの座標を返すために、 coords(item)を使用できます。 方法。キャンバスウィジェット内の形状の座標を含むリストを返します。 例 from tkinter import * #Create an instance of tkinter frame win = Tk() #

  2. Python Matplotlibを使用して3Dグラフをプロットする方法は?

    Pythonを使用して3Dグラフをプロットするには、次の手順を実行できます- figure()を使用して、新しいフィギュアを作成するか、既存のフィギュアをアクティブにします メソッド。 3D軸オブジェクトを取得します。 データポイントのx、y、zリストを作成します。 scatter3D()を使用して3D散布点を追加します メソッド、x、y、zデータポイント、 markersize =150 およびma​​rker=diamond 。 図を表示するには、 show()を使用します メソッド。 例 from mpl_toolkits.mplot3d imp