首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在python中根据散点图中点击的Artist来更改参数

在python中根据散点图中点击的Artist来更改参数
EN

Stack Overflow用户
提问于 2018-06-14 03:25:46
回答 1查看 123关注 0票数 0

我在python中有一个带有选项picker=True的散点图

现在,我想打开另一个python脚本,其中包含一个基于我选择的点的参数。

我确实有一个有效的活动

代码语言:javascript
复制
self.fig.canvas.mpl_connect('pick_event', self.onpick)
def onpick(self, event):
    artist = event.artist
    print("Hello")
...
# The scatter plot is created with
plt.scatter(data[:, 0], data[:, 1], cmap=cmap, c=data[:, 2], s=100, picker=True)

当我单击散点时,python总是打印Hello

现在,我想为每个艺术家添加一个简单的信息(例如,他们被创建为int的顺序),这样当我单击它时,我就可以访问这些信息,并将其用作我想要在单击时打开的python脚本的参数。

另一个(更糟糕的)想法是,获得该艺术家在我的图中的位置,然后根据该艺术家的位置计算我的参数。

不幸的是,如果其中一个想法是可能的,我找不到任何信息。我在https://matplotlib.org/2.0.0/users/artists.html上发现艺术家有一个x和一个y值,但我无法访问它。

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2018-06-14 07:34:11

您可以尝试在下面的内容上进行扩展

代码语言:javascript
复制
import matplotlib.pyplot as plt

def onpick(event):
    artist = event.artist
    for scatter_plot in scatter_plots:
        if artist is scatter_plot.plot:
            print(scatter_plot.order)

class MyScatterPlot():
    def __init__(self, order):
        self.order = order
        self.plot = None

fig, ax = plt.subplots()

scatter_plot1 = MyScatterPlot("first")
scatter_plot2 = MyScatterPlot("second")

scatter_plot1.plot = ax.scatter([1,1,1],[1,2,3], picker=True)
scatter_plot2.plot = ax.scatter([3,3,3],[1,2,3], picker=True)

scatter_plots = [scatter_plot1, scatter_plot2]

fig.canvas.mpl_connect('pick_event', onpick)

fig.show()

这个想法是基于这样一个事实,即您可以将拾取的artistscatter函数返回的对象进行比较。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50844830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档