teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コード修正

2020/06/01 03:57

投稿

jeanbiego
jeanbiego

スコア3966

answer CHANGED
@@ -1,6 +1,5 @@
1
- 「選択したすべて座標を取得する」というのが、単ミナルに表示させだけなら元のコードで既にできています。
1
+ onclick関数タ保存処理が在ため、繰り返し上書されていたのだと思います。
2
- 数に格納してきたいというのでれば、下記のようも書け
2
+ の中るデータ保存処理を外出しした
3
- ファイルに保存したいとかだと、その変数をファイルに書き出す必要がありますね。
4
3
 
5
4
  ```python3
6
5
  import pandas as pd
@@ -12,15 +11,10 @@
12
11
  y1=[random.randint(0, 5000) for i in range(1000)]
13
12
 
14
13
  def onclick(event):
15
- global pos_list
16
- event_xdata_list=[]
14
+ global event_xdata_list
15
+ print("event.button=%d, event.x=%d, event.y=%d, event.xdata=%f, \
16
+ event.ydata=%f"%(event.button, event.x, event.y, event.xdata, event.ydata))
17
17
  event_xdata_list.append(event.xdata)
18
- data=pd.DataFrame(event_xdata_list)
19
- data.to_csv("event_x.csv")
20
- output = "event.button=%d, event.x=%d, event.y=%d, event.xdata=%f, \
21
- event.ydata=%f"%(event.button, event.x, event.y, event.xdata, event.ydata)
22
- print(output)
23
- pos_list.append(output)
24
18
 
25
19
  fig=plt.figure(figsize=(16.0,8.0))
26
20
  ax=fig.add_subplot(111)
@@ -31,9 +25,11 @@
31
25
  ax.set_xlim([0,1])
32
26
  ax.set_ylim([0, 5000])
33
27
 
34
- pos_list = list()
28
+ event_xdata_list = list()
35
29
  fig.canvas.mpl_connect('button_press_event', onclick)
36
30
  plt.show()
37
- print("positions are ",pos_list)
31
+ print("positions are ",event_xdata_list)
32
+ data=pd.DataFrame(event_xdata_list)
33
+ data.to_csv("event_x.csv")
38
34
  plt.close()
39
35
  ```