0
我想使用onclick
方法來選擇我的matplotlib圖上的一系列數據。但事情是,我不能這樣做,並更新情節。我有一些想法來做到這一點,其中之一是將我添加新圖片後跳轉到新索引的地塊列表......但大多數情況下,我希望能夠存儲點擊信息( event.xdata
)兩次,以在該部分的圖形下面着色 - 但對於初學者來說,無論我點擊哪個點,它都將成爲繪製點的成就。但我認爲有一個比plt.draw()
在onclick
函數中更好的解決方案?matplotlib onclick事件重複
import numpy as np
import matplotlib.pyplot as plt
from itertools import islice
class ReadFile():
def __init__(self, filename):
self._filename = filename
def read_switching(self):
return np.genfromtxt(self._filename, unpack=True, usecols={0}, delimiter=',')
def onclick(event):
global ix, iy
ix, iy = event.xdata, event.ydata
global coords
coords.append((ix, iy))
print(coords)
fig.canvas.mpl_disconnect(cid)
return coords
coords = []
filename = 'test.csv'
fig = plt.figure()
ax = fig.add_subplot(111)
values = (ReadFile(filename).read_switching())
steps = np.arange(1, len(values)+1)*2
graph_1, = ax.plot(steps, values, label='original curve')
cid = fig.canvas.mpl_connect('button_press_event', onclick)
print(coords)
graph_2, = ax.plot(coords, marker='o')
plt.show()
例如我有以下功能(圖),我想點擊兩個座標和曲線下顏色的區域,大概有plt.draw()
。
這是一個很大的幫助,但我仍然不明白如何從函數調用中取回x和y座標?我想存儲點擊座標並在其他功能中使用它們。我知道,我可以在相同的功能中使用它們。 – xtlc
@xtlc'xcoords'和'ycoords'是全局變量,所以它們應該可以被所有其他函數訪問 – Suever
對不起,我自己解釋不好:當我點擊時,我可以使用函數中的座標,但是發生在功能停止。例如,如果我想從「def onclick(event)」打印外部座標,該怎麼辦?這就是爲什麼我想要「像一個循環」的原因。 – xtlc