There is an infinite number of ways to plot these information,
however the scale of the columns is quite different if you want to summarise it in a bar chart (a visible one).
The best way is probably what was suggested by Mr. T and the plot looks really nice (i'd add a legend however to explain that the dark blue bar is the male counts while the light blue is the total).
For completeness i'll report other two options which give a less interpretable results ():
You can scale the "total" column to make it visible,
You can do a scatter plot
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
Name = ['GGD', 'CCG', 'PPT', 'MMMA', 'JKK', 'BBD', 'KNL']
prop_male = [0.254147, 0.216658, 0.265414, 0.185105, 0.434557, 0.279319,
0.277761]
total = [727240, 323510, 251023, 210416, 201594, 198998, 190246]
#Plot as bar
x = np.arange(len(Name)) # the label locations
width = 0.35 # the width of the bars
fig, ax = plt.subplots(1,2, figsize=(20,8))
rects1 = ax[0].bar(x - width/2, [float(i)/1e6 for i in total], width,
label=r'Total $\times$ 1e-6 ')
rects2 = ax[0].bar(x + width/2, prop_male, width, label='Prop_male')
ax[0].set_xticks(x)
ax[0].set_xticklabels(Name, size=15)
ax[0].legend()
ax[0].set_ylabel("Counts [a.u.]", size=15)
#plot as scatter
norm = matplotlib.colors.Normalize(vmin=0,vmax=len(Name))
mapper = matplotlib.cm.ScalarMappable(norm=norm, cmap='viridis')
colors = np.array([(mapper.to_rgba(v)) for v in range(len(Name))])
for x, y, c in zip(prop_male, total, colors):
ax[1].plot(x, y, 'o', color=c, markersize=10, alpha=0.8)
cmap = plt.get_cmap('viridis',len(Name))
sm = plt.cm.ScalarMappable(cmap=cmap, norm=norm)
sm.set_array([])
cbar = plt.colorbar(sm, ticks=np.linspace(0,len(Name),len(Name)))
cbar.ax.set_yticklabels(Name)
cbar.set_label('Name', size=15)
ax[1].set_xlabel("prop_male", size=15)
ax[1].set_ylabel("total", size=15)
The plot should be something like this
