无法让我的 matplotlib 文本在 pick_event 上刷新

问题描述

请帮忙看看这段Python代码,看看有没有什么问题。我似乎无法根据我单击的气泡刷新我的文本以显示县名。我附上了图表的外观图像。谢谢! :)

注意:感谢特伦顿的提醒。我已经编辑了这个问题以包含一个可重复的随机数数据框以供参考。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

%matplotlib notebook

county = list(string.ascii_uppercase)

np.random.seed(444)
x_data = list(np.random.uniform(0,0.1,26))
y_data = list(np.random.gamma(2,1,26)/10)
pop = list(np.random.randint(10000,500000,26))

data = pd.DataFrame({'county': county,'x': x_data,'y': y_data,'population': pop})

c1 = 'blue' #blue
c2 = 'red' #red
n = len(data['x'])

fig,ax = plt.subplots(figsize=(15,8))
chart = plt.scatter(data['x']*100,data['y']*100,c=data['y'],cmap='RdBu',s=np.sqrt(data['population']/np.pi),alpha=.5,picker=5)
plt.gca().set_facecolor('gainsboro')
plt.gca().set_ylabel('Y value,in %',fontsize=12)
plt.gca().set_xlabel('X value,fontsize=12)
plt.gca().set_xlim(0,8)
plt.gca().set_ylim(0,70)
plt.gca().set_axisbelow(True)
plt.gca().grid(color='lightgrey')

cbar = fig.colorbar(chart)
cbar.set_ticks([0.3,0.4,0.5,0.6,0.7,0.8])
cbar.ax.set_yticklabels(['30%','40%','50%','60%','70%','80%'])
    
t = ax.text(1,75,'Selected county:',fontsize=12)

def onpick(event):
    county = data.iloc[event.ind[0]]['county']
    t.set_text(1,'Selected county: {} County'.format(county),fontsize=12)
        

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

当前图表输出:https://i.stack.imgur.com/oPwhz.png

解决方法

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

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

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