Я использую геопанды для визуализации данных на карте после слияния фрейма данных goepandas с числовым фреймом данных.Я хочу отобразить эти данные, как только пользователь наведет курсор на страну, которой эти данные принадлежат. Прямо сейчас мне удается отобразить координату в виде аннотации, когда мышь находится над, но мне нужны данные
enter code genertate() : Map_Figure, Map_Graph = plt.subplots()
dataset = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
world = pd.DataFrame(dataset[['name', 'geometry', 'iso_a3']])
data2 = (records['Location'].value_counts()).reset_index()
data2.columns = ['name', 'Number']
data2['Number'] = data2['Number'].apply(int)
annot = Map_Graph.annotate("", xy=(0, 0), xytext=(20, 20), textcoords="offset points",
bbox=dict(boxstyle="round", fc="w"),
arrowprops=dict(arrowstyle="->"))
datum = world.set_index('name').join(data2.set_index('name'))
World = geopandas.GeoDataFrame(datum)
#print(Map_Graph)
basePlot = World.plot(ax=Map_Graph, column='Number', linewidth=0.1, edgecolor='black', cmap='nipy_spectral',
vmin=World['Number'].min(), vmax=World['Number'].max(), legend=True)
# worldPlot= World.plot(ax=Map_Graph, color= 'white', edgecolor='black', cmap='tab10', scheme='QUANTILES', figsize=(8, 4))
locations = data2.values
box = []
for word, count in locations[:10]:
string = '%s | %s posts' % (word, human_format(count))
if len(string) >= 27:
string = string[:27] + " \n" + string[27:]
else:
string = string
box.append(string)
s = '\n'.join(box)
mapText = '%s ' % (s)
Map_Graph.text(-340, -80, mapText, size='small', wrap=True,
bbox={'boxstyle': 'round', 'facecolor': 'white', 'alpha': 0.5, 'pad': 0.8})
Map_Graph.set_axis_off()
Map_Figure.set_tight_layout(True)
Map_Figure.savefig("Report/data/Map.png")
mapCursor(Map_Graph)
Map_Figure.set_size_inches(6, 3.3)
return Map_Figure,basePlothere
икод фоулинга для отображения данных, когда мышь зависает
enter code here
self.mapFigure,ax= AM.generate_Map()
#hover = HoverTool(tooltips=[('Country/region', '@country'), ('% obesity', '@per_cent_obesity')])
self.mapGraphs = FigureCanvasWxAgg(self.gPanel_map, -1, self.mapFigure)
datacursor(ax, xytext=(15, -15), bbox=dict(fc='white'), arrowprops=None, hover=True,
formatter='{x.d}: \n{y}'.format)