rect, rectangle, box, square all produce square rectangle in geolegend, I suggest changing rect and rectangle to non-square.
fig,ax=pplt.subplot()
ax.axis('off')
# ax.geolegend(['diamond', 'rect', 'box'], fc='r', ec='r', loc='uc')
ax.geolegend(['diamond', 'rect','rectangle', 'box', 'square'],
facecolor='r', edgecolor='r', loc='c', ncols=1)

rect,rectangle,box,squareall produce square rectangle ingeolegend, I suggest changingrectandrectangleto non-square.