Python 如何在熊猫数据帧散点图中添加图例?

Python 如何在熊猫数据帧散点图中添加图例?,python,python-3.x,pandas,matplotlib,Python,Python 3.x,Pandas,Matplotlib,我有一个pandas数据框,其中包含以下感兴趣的列: ['Relative Width', 'Relative Height', 'Object Name', 'Object ID'] 有15个对象名称,其中15种颜色由df.plot(c='object ID')确定,生成下图: 我想显示一个带有15个对象名的图例,如何做到这一点 import matplotlib.pyplot as plt from annotation_parsers import parse_voc_folder

我有一个pandas数据框,其中包含以下感兴趣的列:

['Relative Width', 'Relative Height', 'Object Name', 'Object ID']
有15个对象名称,其中15种颜色由
df.plot(c='object ID')
确定,生成下图:

我想显示一个带有15个对象名的图例,如何做到这一点

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()
根据wwnde的建议,我将代码更改为:

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()
这将产生以下结果:

请再试一次

fig, ax = plt.subplots()

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

这将为您提供一个默认的彩色图例

什么是
parse_voc_文件夹
?你能帮我们把它删掉吗?可能得走这条路-@DerekEden我在有10000行的数据帧上尝试了这种方法,它运行了30秒却没有给出任何结果,所以我认为这是一种非常低效的方法。@Z4 tier我不想让这里的事情复杂化,无论如何,它是一个返回8列数据帧的函数,其中4列是我上面提到的,它们是感兴趣的列,数据帧的其余部分与我的问题无关。为什么不呢,fig,ax=plt.subplot()ax=sns.scatterplot(x=“Relative Width”,y=“Relative Height”,hue=“Relative Height”,size=“size”,data=tips)plt.show()?这将给你一个图例和默认分配的颜色?我尝试了这种方法,它奏效了,我将编辑我的问题以包括结果,如何修改此设置的cmap?@sK500添加参数
palete='gist\u rainbow'