matplotlib colorbar for scatter
From the matplotlib docs on scatter 1:
cmap is only used if c is an array of floats
So colorlist needs to be a list of floats rather than a list of tuples as you have it now.plt.colorbar() wants a mappable object, like the CircleCollection that plt.scatter() returns.vmin and vmax can then control the limits of your colorbar. Things outside vmin/vmax get the colors of the endpoints.
How does this work for you?
import matplotlib.pyplot as pltcm = plt.cm.get_cmap('RdYlBu')xy = range(20)z = xysc = plt.scatter(xy, xy, c=z, vmin=0, vmax=20, s=35, cmap=cm)plt.colorbar(sc)plt.show()
Here is the OOP way of adding a colorbar:
fig, ax = plt.subplots()im = ax.scatter(x, y, c=c)fig.colorbar(im, ax=ax)
If you're looking to scatter by two variables and color by the third, Altair can be a great choice.
Creating the dataset
import matplotlib.pyplot as pltimport numpy as npimport pandas as pddf = pd.DataFrame(40*np.random.randn(10, 3), columns=['A', 'B','C'])
Altair plot
from altair import *Chart(df).mark_circle().encode(x='A',y='B', color='C').configure_cell(width=200, height=150)