我是新的matplotlib,我期待着标签的茎干图与x,y co-od时,鼠标悬停在该点。当我搜索一切都是为了散点图(可能使标 checkout 现时,悬停在一个点在matplotlib?目前的代码是这样的:
def plot_matching(mzs,ints,matching,scan_num):
fig=p1.gcf()
fig.canvas.set_window_title('MS/MS Viewer')
rel_ints=relative_intensity(ints)
p1.xlim(min(mzs)-100,max(mzs)+100)
p1.ylim(min(rel_ints),max(rel_ints)+5)
p1.title('Scan Number:'+scan_num)
p1.xlabel('m/z')
p1.ylabel('Relative intensity')
mzs_rel=zip(mzs,rel_ints)
for x,y in mzs_rel:
x1=[]
y1=[]
x1.append(x)
y1.append(y)
markerline, stemlines, baseline=p1.stem(x1,y1)
p1.setp(markerline, 'Marker', '')
for m in matching:
if x==m[1] and y>3.0:
p1.setp(stemlines, linewidth=2, color='r')
p1.text(x,y,m[0],fontsize=12)
break
else:
p1.setp(stemlines,linewidth=2, color='g')
return p1
散点图也会链接到干图吗?
2条答案
按热度按时间z31licg01#
要创建一个悬停标签,需要挂接一个函数来处理
motion_notify_events
:下面的代码展示了一种实现方法。
其中
ax
是坐标轴,x
和y
是坐标列表。由于您提供了x
和y
,因此无论您是绘制折线图还是绘制干线图,都没有关系。当鼠标移到(xi, yi)
附近时,标签就会出现。下面的代码使用
scipy.spatial.cKDTree
来定位最近的点。Here是此代码的较早版本,不需要scipy。prdp8dxp2#
有一个伟大的插件:https://github.com/anntzer/mplcursors安装非常简单。不需要自己实现。