在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. Windows上的交互式matplotlib/ipython數字
- 2. 使用泡菜matplotlib交互式圖
- 3. 用matplotlib繪製交互式圖像
- 4. 像Python中的Python交互式選擇工具
- 5. 交互改變selectInput選擇
- 6. r選擇已行交互
- 7. 保存matplotlib交互式導航中的縮放設置圖
- 8. 使用Javascript與選擇輸入交互?
- 9. Matplotlib和WxPython - 交互式工具欄Plot沒有做點擊刷新/更新
- 10. 如何在matplotlib中交互地切換圖,或有選擇地隱藏和顯示圖上的數據?
- 11. 什麼網絡技術選擇提供交互式着色?
- 12. Git的交互式rebase中的「選擇」是做什麼的?
- 13. 在交互模式下的一些選擇不上的git
- 14. 以交互方式運行代碼的選擇
- 15. 設計選擇交互式圖表ASP.NET MVC Razor
- 16. Slack API交互式消息菜單,選擇用戶子集
- 17. python腳本的Matplotlib交互部件
- 18. 交互式圖例onclick或mouseover - D3js
- 19. 交互式php
- 20. 交互式Antlr
- 21. 交互式ImageViews
- 22. 交互式Python
- 23. 交互式iframe
- 24. 交互式pyDev控制檯在斷點
- 25. 用d3製作交互式散點圖?
- 26. 如何在交互式繪圖(Python)中使用鼠標指定(x,y)位置?
- 27. 嵌入在PyQt中的Matplotlib交互式圖形
- 28. Spyder控制檯關閉交互式matplotlib繪圖
- 29. matplotlib交互式圖形(手動在圖形上繪製線)
- 30. 在Mac OS X上使用matplotlib進行非交互式繪圖
FWIW:還有'I選擇()'的'iplots'包(對於R)。這是一個泛化:它涉及到連接和刷牙。同樣可以通過Matlab中的get(,'BrushData')函數完成。 – Iterator
對,還有Rggobi。但是我沒有意識到Matlab的這種能力 - 上次我使用它的時間已經回到了6.5版本的時代。似乎從那時起已經變得奇特。 – hatmatrix
花式和昂貴。在過去的十年裏,R的成本也增加了兩倍,但它仍然是一個便宜貨。 :) – Iterator