The solution to this is Altair.
import numpy as np import pylab as pl x = np.random.uniform(-1, 1, 1000) y = np.random.uniform(-1, 1, 1000) z = np.sqrt(x*x+y*y) df = pd.DataFrame({'x':x,'y':y, 'z':z}) from altair import * Chart(df).mark_circle().encode(x='x',y='y', color='z')
source share