单击图中的数据点时返回变量

问题描述

我在互联网上找到了以下提到的脚本。我的目标是拥有一个脚本,当单击图形中的数据点时,该脚本可以获取变量x和y。该脚本可以打印值,但是我希望该脚本使用x和y坐标的值制作变量。

有人可以帮助我吗?也许还给出有关此脚本如何构建的简短解释。

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
x=[0,1,2,3,4]
y=[2,2]
if 1:
fig,ax = plt.subplots()
ax.set_title('click on points',picker=True)
ax.set_ylabel('ylabel',picker=True)
line,= ax.plot(x,y,'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
        a=('X='+str(np.take(xdata,ind)[0])) # Print X point
        b=('Y='+str(np.take(ydata,ind)[0])) # Print Y point
        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_disconnect(g)
 g=fig.canvas.mpl_connect('pick_event',onpick1)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)