Cómo agregar una leyenda en un gráfico de dispersión pandas trama de datos?

SK500:

Tengo una trama de datos pandas que contiene las siguientes columnas de interés:

['Relative Width', 'Relative Height', 'Object Name', 'Object ID']

Hay 15 nombres de objetos con 15 colores determinados con df.plot(c='Object ID')que los productos de la siguiente figura:

higo

Quiero mostrar una leyenda con los nombres de 15 de color, cómo se puede hacer esto?

import matplotlib.pyplot as plt
from annotation_parsers import parse_voc_folder


def visualize_box_relative_sizes(folder_path, voc_conf, cache_file='data_set_labels.csv'):
    frame = parse_voc_folder(folder_path, voc_conf, cache_file)
    title = f'Relative width and height for {frame.shape[0]} boxes.'
    frame.plot(
        kind='scatter',
        x='Relative Width',
        y='Relative Height',
        title=title,
        c='Object ID',
        colormap='gist_rainbow',
        colorbar=False,
    )
    plt.show()

Sobre la base de la recomendación wwnde, he cambiado el código a la siguiente:

def visualize_box_relative_sizes(folder_path, voc_conf, cache_file='data_set_labels.csv'):
    frame = parse_voc_folder(folder_path, voc_conf, cache_file)
    title = f'Relative width and height for {frame.shape[0]} boxes.'
    sns.scatterplot(x=frame["Relative Width"], y=frame["Relative Height"], hue=frame["Object Name"])
    plt.title(title)
    plt.show()

que produce el siguiente resultado:

introducir descripción de la imagen aquí

wwnde:

Por favor, inténtalo

fig, ax = plt.subplots()

ax = sns.scatterplot(x="total_bill", y="tip",
                     hue="size", size="size",
                     data=tips)
ax.set_title('title')
plt.show()

Esto debe darle una leyenda de colores por defecto

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=372945&siteId=1
Recomendado
Clasificación