I´ve found many examples on how to avoid overlaping text on matplotlib but none that I could figure out how to apply to my case.
I have a dataframe (mapadf1) with some information about brazilian municipalities and i ploted over a shapefile of São Paulo's state (sp).
I created a variable "l", that containg the name of the municipality and the number I want to highlight. When the number is 0, the string is blank.
Ok so I managed to plot my map with the following code:
# set the range for the choropleth values
vmin, vmax = 0, 1
# create figure and axes for Matplotlib
fig, ax = plt.subplots(1, figsize=(30, 10))
# remove the axis que mostra latitude e longitude
ax.axis('off')
# add a title and annotation
ax.set_title('Número leitos inaugurados: 22/03', fontdict={'fontsize': '25', 'fontweight' : '3'})
ax.annotate('Fonte: Governo do Estado de São Paulo', xy=(0.6, .05), xycoords='figure fraction', fontsize=12, color='#555555')
# empty array for the data range
sm.set_array([]) # or alternatively sm._A = []. Not sure why this step is necessary, but many recommends it
# create map
mapa_df1.plot(column='tem_leito',cmap='Paired', linewidth=0.8, ax=ax, edgecolor='0.8')
# Add Labels
mapa_df1['coords'] = mapa_df1['geometry'].apply(lambda x: x.representative_point().coords[:])
mapa_df1['coords'] = [coords[0] for coords in mapa_df1['coords']]
for idx, row in mapa_df1.iterrows():
plt.annotate(s=row['l'], xy=row['coords'])
And my map:
How can I avoid the overlaping text?!
Thanks in advance!