Вы можете использовать пакет seaborn, в котором используется оболочка matplotlib. У этого есть множество особенностей с красивыми заговорами. Вот простой пример вашего вопроса.
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
import pandas as pd
data = pd.DataFrame({'col1':[4500,2800,1350,2100,3450],
'col2':[3800,3100 ,1650,1900,3600],
'col3':[3,2,1,2,3]})
sns.lmplot(data=data, x='col1', y='col2', hue='col3',
fit_reg=False, legend=True)
#fit_reg is use to fit a line for regression, we need only dots.
