python – 从具有多个数据集的散点图获取x,y?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 从具有多个数据集的散点图获取x,y?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2163字,纯文字阅读大概需要4分钟。
内容图文
![python – 从具有多个数据集的散点图获取x,y?](/upload/InfoBanner/zyjiaocheng/793/42503c645108415888a2efda6296a7f6.jpg)
我有一个散点图,它由不同的散射调用组成:
import matplotlib.pyplot as plt
import numpy as np
def onpick3(event):
index = event.ind
print '--------------'
print index
artist = event.artist
print artist
fig_handle = plt.figure()
x,y = np.random.rand(10),np.random.rand(10)
x1,y1 = np.random.rand(10),np.random.rand(10)
axes_size = 0.1,0.1,0.9,0.9
ax = fig_handle.add_axes(axes_size)
p = ax.scatter (x,y, marker='*', s=60, color='r', picker=True, lw=2)
p1 = ax.scatter (x1,y1, marker='*', s=60, color='b', picker=True, lw=2)
fig_handle.canvas.mpl_connect('pick_event', onpick3)
plt.show()
我希望点可点击,并获得所选索引的x,y.
但是由于散布被多次调用,我得到两次相同的索引,所以我不能在onpick3方法中使用x [index]
有没有直接的方法来获得积分?
似乎event.artist返回了从scatter(在这种情况下为p和p1)返回的相同PathCollection.
但我找不到任何方法来使用它来提取所选索引的x,y
尝试使用event.artist.get_paths() – 但它似乎没有回馈所有散点,但只有我点击的那个..所以我真的不确定什么event.artist回馈和event.artist.get_paths()函数是什么回馈
编辑
似乎event.artist._offsets给出了一个具有相关偏移量的数组,但出于某种原因,当尝试使用event.artist.offsetsI时
AttributeError: 'PathCollection' object has no attribute 'offsets'
(虽然如果我理解docs,它应该在那里)
解决方法:
要获得散射返回的集合的x,y坐标,请使用event.artist.get_offsets()(Matplotlib主要具有历史原因的显式getter和setter.所有get_offsets都返回self._offsets,但公共接口是通过“吸气剂”.).
所以,要完成你的例子:
import matplotlib.pyplot as plt
import numpy as np
def onpick3(event):
index = event.ind
xy = event.artist.get_offsets()
print '--------------'
print xy[index]
fig, ax = plt.subplots()
x, y = np.random.random((2, 10))
x1, y1 = np.random.random((2, 10))
p = ax.scatter(x, y, marker='*', s=60, color='r', picker=True)
p1 = ax.scatter(x1, y1, marker='*', s=60, color='b', picker=True)
fig.canvas.mpl_connect('pick_event', onpick3)
plt.show()
但是,如果您不是通过第3或第4变量改变事物,则可能不希望使用散点图来绘制点.改用剧情. scatter返回的集合比绘图返回的Line2D更难处理. (如果你选择使用情节的路线,你可以使用x,y = artist.get_data().)
最后,不要过多地插入我自己的项目,但如果你发现mpldatacursor有用的话.它抽象了很多你在这里做的事情.
如果您决定采用该路线,您的代码将类似于:
内容总结
以上是互联网集市为您收集整理的python – 从具有多个数据集的散点图获取x,y?全部内容,希望文章能够帮你解决python – 从具有多个数据集的散点图获取x,y?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。