回答編集履歴
2
表現を修正
answer
CHANGED
@@ -9,7 +9,8 @@
|
|
9
9
|
+plt.scatter(x, y, picker=True, pickradius=2.5)
|
10
10
|
```
|
11
11
|
|
12
|
-
`pickradius`を指定すると、各ポイントを中心とする、
|
12
|
+
`pickradius`を指定すると、各ポイントを中心とする、`pick_event`を発生させる円の半径を変更できます。
|
13
|
+
設定しなくてもそれなりの大きさになっていますが、ちょっと広めだったので、ここではScatterの円マーカーの大きさ(面積)の初期値20に対応する、おおよその半径2.5を設定しています。
|
13
14
|
|
14
15
|
あとは、紐付けた関数`click`の内部で、
|
15
16
|
|
@@ -23,4 +24,4 @@
|
|
23
24
|
print('clicked object')
|
24
25
|
```
|
25
26
|
|
26
|
-
のように、`event`オブジェクトを使って、クリックした点
|
27
|
+
のように、`event`オブジェクトを使って、クリックした点の情報(インデックスや座標など)を得ることができます。なお、マーカーが重なっているような場合は、複数の点のインデックスが得られます。
|
1
補足を追加
answer
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
`pick_event`は、対象となるオブジェクトの`picker`プロパティが`None`の場合には発生しません。
|
2
2
|
|
3
|
+
[Pick Event Demo — Matplotlib 3.4.3 documentation](https://matplotlib.org/stable/gallery/event_handling/pick_event_demo.html)
|
4
|
+
|
3
5
|
`picker`プロパティの初期値は`None`なので、利用者が`True`に変更してください。例えば、Scatterを生成するときに、オプション引数で指定します。
|
4
6
|
|
5
7
|
```diff
|