Jezreal's answer is fine, but I will post this to show what I meant with df.iterrows in another thread.
I am afraid that you should put the scatter command (or chart) in a loop if you want to have dynamic size.
df = pd.DataFrame(dict(x=x, y=y, s=s, users=users)) fig, ax = plt.subplots(facecolor='w') for key, row in df.iterrows(): ax.scatter(row['x'], row['y'], s=row['s']*5, alpha=.5) ax.annotate(row['users'], xy=(row['x'], row['y']))

Rutger Kassies Jan 05 '17 at 11:35 2017-01-05 11:35
source share