I have made this code for an activity, I am a beginner in python. But when I plot, the legend only shows the first letter of my legend. Also, this map shows a group of states and I would like to know if there's a way to identify the states with their names, and if its not ask too much, label the color bar, I've tried a lot of solutions here but nothing seems to work for the label or the legend.
mapa_area = gpd.read_file(r'C:\Users\pc\Documents\shape area de interesse\Area de interesse.shp')
obsis_data = pd.read_csv(r'C:\Users\pc\Documents\dados obsis.csv', sep=';')
print(obsis_data.head())
crs = {'init': 'epsg4326'}
df_geo = gpd.GeoDataFrame(obsis_data, geometry=gpd.points_from_xy(obsis_data.Longitude, obsis_data.Latitude))
print(df_geo)
ig, ax = plt.subplots(figsize=(25,25))
mapa_area.plot(ax=ax, alpha=0.4, color="grey", edgecolor ="black", zorder=1)
df_geo.plot(ax=ax, markersize=20, c=obsis_data.Magnitude,cmap='hsv', marker="*", zorder=2, label='Eventos SÃsmicos')
axis = mapa_area
norm = matplotlib.colors.Normalize(vmin=2,vmax=4.1)
sm = plt.cm.ScalarMappable(cmap='hsv', norm=norm)
sm.set_array([])
plt.colorbar(sm, ticks=np.linspace(2,4.1,20),
boundaries=np.arange(2,4.3,.1))
plt.xlabel('Longitude', size=14)
plt.ylabel('Latitude', size=14)
plt.title('Eventos registrados entre 2008 e 2013', size=16)
plt.show()
