Adición de tags en el diagtwig de dispersión xy con el mar

He pasado horas tratando de hacer lo que pensé que era una tarea simple, que consiste en agregar tags en un diagtwig XY mientras utilizo el transporte marítimo.

Aquí está mi código

import seaborn as sns import matplotlib.pyplot as plt %matplotlib inline df_iris=sns.load_dataset("iris") sns.lmplot('sepal_length', # Horizontal axis 'sepal_width', # Vertical axis data=df_iris, # Data source fit_reg=False, # Don't fix a regression line size = 8, aspect =2 ) # size and dimension plt.title('Example Plot') # Set x-axis label plt.xlabel('Sepal Length') # Set y-axis label plt.ylabel('Sepal Width') 

Me gustaría agregar a cada punto de la gráfica el texto en la columna “especies”.

He visto muchos ejemplos usando matplotlib pero no usando mar.

¿Algunas ideas? Gracias.

Una forma de hacer esto es como sigue:

 import seaborn as sns import matplotlib.pyplot as plt import pandas as pd %matplotlib inline df_iris=sns.load_dataset("iris") ax = sns.lmplot('sepal_length', # Horizontal axis 'sepal_width', # Vertical axis data=df_iris, # Data source fit_reg=False, # Don't fix a regression line size = 10, aspect =2 ) # size and dimension plt.title('Example Plot') # Set x-axis label plt.xlabel('Sepal Length') # Set y-axis label plt.ylabel('Sepal Width') def label_point(x, y, val, ax): a = pd.concat({'x': x, 'y': y, 'val': val}, axis=1) for i, point in a.iterrows(): ax.text(point['x']+.02, point['y'], str(point['val'])) label_point(df_iris.sepal_length, df_iris.sepal_width, df_iris.species, plt.gca()) 

introduzca la descripción de la imagen aquí

Aquí hay una respuesta más actualizada que no sufre el problema de cadena descrito en los comentarios.

 import seaborn as sns import matplotlib.pyplot as plt %matplotlib inline df_iris=sns.load_dataset("iris") plt.figure(figsize=(20,10)) p1 = sns.scatterplot('sepal_length', # Horizontal axis 'sepal_width', # Vertical axis data=df_iris, # Data source size = 8, legend=False) for line in range(0,df_iris.shape[0]): p1.text(df_iris.sepal_length[line]+0.01, df_iris.sepal_width[line], df_iris.species[line], horizontalalignment='left', size='medium', color='black', weight='semibold') plt.title('Example Plot') # Set x-axis label plt.xlabel('Sepal Length') # Set y-axis label plt.ylabel('Sepal Width') 

introduzca la descripción de la imagen aquí