Diagramas de dispersión en Pandas / Pyplot: Cómo trazar por categoría

Estoy tratando de hacer un diagrama de dispersión simple en pyplot usando un objeto Pandas DataFrame, pero quiero una forma eficiente de trazar dos variables pero tener los símbolos dictados por una tercera columna (clave). He intentado varias formas usando df.groupby, pero no con éxito. Un ejemplo de script df está debajo. Esto colorea los marcadores de acuerdo con 'clave1', pero me gustaría ver una leyenda con categorías 'clave1'. ¿Estoy cerca? Gracias.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame(np.random.normal(10,1,30).reshape(10,3), index = pd.date_range('2010-01-01', freq = 'M', periods = 10), columns = ('one', 'two', 'three'))
df['key1'] = (4,4,4,6,6,6,8,8,8,8)
fig1 = plt.figure(1)
ax1 = fig1.add_subplot(111)
ax1.scatter(df['one'], df['two'], marker = 'o', c = df['key1'], alpha = 0.8)
plt.show()

Respuestas a la pregunta(6)

Su respuesta a la pregunta