Contour Plot based on gene expression or score


I am trying to replicate contour plots depicting expression of a gene over UMAP such as this :

Source Publication :

I tried getting X and Y coordinates of UMAP as a list and then use sc.get.obs_df to get a list of expression values of a given gene. Then I used matplotlib.tricontour to plot, however, it looks weird. I am not getting circular contour levels. Example of plot I am getting with tricontour


Does anyone know how to make similar plot using matplotlib?