在R中,有一個功能locator
,它與Matlab的ginput
類似,您可以用鼠標單擊圖形並選擇任何x,y座標。另外,還有一個叫做identify(x,y)
的函數,如果你給它一組已繪製的點x,y,然後單擊該圖,它將返回最接近的x,y點的索引(在一個可調容差)到您選擇的位置(或多個指標,如果選擇多個點)。 Matplotlib中有這樣的功能嗎?matplotlib - 交互式選擇點或位置?
14
A
回答
12
您可能需要使用一個pick event:
fig = figure()
ax1 = fig.add_subplot(111)
ax1.set_title('custom picker for line data')
line, = ax1.plot(rand(100), rand(100), 'o', picker=line_picker)
fig.canvas.mpl_connect('pick_event', onpick2)
公差通過選擇器參數有設置:
line, = ax1.plot(rand(100), 'o', picker=5) # 5 points tolerance
+0
是的,這是偉大的 - 謝謝你! – hatmatrix
5
from __future__ import print_function
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D
from matplotlib.patches import Rectangle
from matplotlib.text import Text
from matplotlib.image import AxesImage
import numpy as np
from numpy.random import rand
if 1:
fig, ax = plt.subplots()
ax.set_title('click on points', picker=True)
ax.set_ylabel('ylabel', picker=True, bbox=dict(facecolor='red'))
line, = ax.plot(rand(100), 'o', picker=5)
def onpick1(event):
if isinstance(event.artist, Line2D):
thisline = event.artist
xdata = thisline.get_xdata()
ydata = thisline.get_ydata()
ind = event.ind
print 'X='+str(np.take(xdata, ind)[0]) # Print X point
print 'Y='+str(np.take(ydata, ind)[0]) # Print Y point
fig.canvas.mpl_connect('pick_event', onpick1)
+2
如果你從將來導入打印函數,你必須添加brakets:print('X ='+ str(np.take(xdata,ind)[0])) –
相關問題
- 1. 在matplotlib圖中交互選擇系列
- 2. wxmplot matplotlib wxPython的交互式散點圖
- 3. matplotlib中的交互模式
- 4. Matplotlib拖動重疊點交互
- 5. 如何創建交互式選擇?
- 6. 交互式圖形python wx.lib.plot。選擇一些點
- 7. 交互式Matplotlib窗口不更新
- 8. 用matplotlib繪製交互式圖像
- 9. Windows上的交互式matplotlib/ipython數字
- 10. 使用泡菜matplotlib交互式圖
- 11. Ipython matplotlib交互模式如何工作?
- 12. Matplotlib交互式環境不起作用
- 13. 使用matplotlib的交互式直方圖?
- 14. 通過文本框交互式matplotlib圖
- 15. 像Python中的Python交互式選擇工具
- 16. r選擇已行交互
- 17. 交互改變selectInput選擇
- 18. 保存matplotlib交互式導航中的縮放設置圖
- 19. Multylayer或交互式視頻
- 20. 如何按位置選擇XML節點(Linq或XPATH)
- 21. python交互散點圖
- 22. 檢測與選擇框的交互
- 23. 使用Javascript與選擇輸入交互?
- 24. 選擇與Java交互的線程
- 25. 在CheckBox交互時選擇父級ListBoxItem
- 26. Matplotlib和WxPython - 交互式工具欄Plot沒有做點擊刷新/更新
- 27. SimpleDB - 位置比較選擇表達式
- 28. 在matplotlib中交互添加和移除散點
- 29. 交互式繪圖
- 30. 如何在matplotlib中交互地切換圖,或有選擇地隱藏和顯示圖上的數據?
FWIW:還有'I選擇()'的'iplots'包(對於R)。這是一個泛化:它涉及到連接和刷牙。同樣可以通過Matlab中的get(,'BrushData')函數完成。 – Iterator
對,還有Rggobi。但是我沒有意識到Matlab的這種能力 - 上次我使用它的時間已經回到了6.5版本的時代。似乎從那時起已經變得奇特。 – hatmatrix
花式和昂貴。在過去的十年裏,R的成本也增加了兩倍,但它仍然是一個便宜貨。 :) – Iterator