matplotlib 底图鼠标事件
matplotlib basemap mouse event
global testResults
testResults = []
def onclick(event):
print('%s click: button=%d, x=%d, y=%d, xdata=%f, ydata=%f' %
('double' if event.dblclick else 'single', event.button,
event.x, event.y, event.xdata, event.ydata))
testResults.append('Success')
fig, axes = plt.subplots(1,1,figsize=(20,10))
axes.set_title('Seasonality Clustering')
markerList = ['bo','go','ro','co','mo','yo','ko','wo']
m = Basemap(projection='gall',
llcrnrlon=-130,llcrnrlat=20,urcrnrlon=-65,urcrnrlat=55,resolution='i',
lat_0=39.5, lon_0=-98.35,ax=axes)
m.bluemarble()
for index,row in siteMaster.iterrows():
x,y = m(row['longitude'],row['latitude'])
m.plot(x,y,markerList[int(row['Cluster2'])],markersize=10)
for index,row in siteMaster.iloc[closest].iterrows():
x,y = m(row['longitude'],row['latitude'])
x2,y2 = m(row['longitude'],row['latitude']+10)
plt.annotate(row['City']+','+row['State'], xy=(x,y),xycoords='data',xytext=(x2,y2),color = markerList[int(row['Cluster2'])][0],
arrowprops=dict(arrowstyle="->",color = markerList[int(row['Cluster2'])][0]),size=20)
fig.canvas.mpl_connect('button_press_event', onclick)
plt.show()
我正在尝试为底图对象添加鼠标事件。我尝试了几种不同的事件,但没有打印任何内容。我使用的环境是 Python 3.6 的 Jupyter Notebook。剧情可以显示成功,但是点了几次图returns什么都没有。而全局变量 "testResults" 是一个空列表。我应该如何为底图对象添加鼠标事件?见下图。
Matplotlib Plot
您可能在 jupyter 中使用内联后端,它会生成 png 图。单击 png 图像当然没有效果。
您可以使用
%matplotlib notebook
后端,或者试试
%matplotlib qt
后端。
global testResults
testResults = []
def onclick(event):
print('%s click: button=%d, x=%d, y=%d, xdata=%f, ydata=%f' %
('double' if event.dblclick else 'single', event.button,
event.x, event.y, event.xdata, event.ydata))
testResults.append('Success')
fig, axes = plt.subplots(1,1,figsize=(20,10))
axes.set_title('Seasonality Clustering')
markerList = ['bo','go','ro','co','mo','yo','ko','wo']
m = Basemap(projection='gall',
llcrnrlon=-130,llcrnrlat=20,urcrnrlon=-65,urcrnrlat=55,resolution='i',
lat_0=39.5, lon_0=-98.35,ax=axes)
m.bluemarble()
for index,row in siteMaster.iterrows():
x,y = m(row['longitude'],row['latitude'])
m.plot(x,y,markerList[int(row['Cluster2'])],markersize=10)
for index,row in siteMaster.iloc[closest].iterrows():
x,y = m(row['longitude'],row['latitude'])
x2,y2 = m(row['longitude'],row['latitude']+10)
plt.annotate(row['City']+','+row['State'], xy=(x,y),xycoords='data',xytext=(x2,y2),color = markerList[int(row['Cluster2'])][0],
arrowprops=dict(arrowstyle="->",color = markerList[int(row['Cluster2'])][0]),size=20)
fig.canvas.mpl_connect('button_press_event', onclick)
plt.show()
我正在尝试为底图对象添加鼠标事件。我尝试了几种不同的事件,但没有打印任何内容。我使用的环境是 Python 3.6 的 Jupyter Notebook。剧情可以显示成功,但是点了几次图returns什么都没有。而全局变量 "testResults" 是一个空列表。我应该如何为底图对象添加鼠标事件?见下图。 Matplotlib Plot
您可能在 jupyter 中使用内联后端,它会生成 png 图。单击 png 图像当然没有效果。
您可以使用
%matplotlib notebook
后端,或者试试
%matplotlib qt
后端。