【问题标题】:Seaborn ScatterplotsSeaborn 散点图
【发布时间】:2020-12-04 12:38:54
【问题描述】:

我想为我在 seaborn 中的散点图做两件事。

  1. 更改图例标题并从图例中删除系列名称。所以删除图例中出现的petal_length
  2. 更改图例的数字输出。更改为 [0,4,8] 范围

我该怎么做?

import seaborn as sns
cmap = sns.light_palette("green", as_cmap=True)
iris = sns.load_dataset("iris")
p=sns.scatterplot("sepal_length", "sepal_width",data=iris
                  ,hue="petal_length"
                  ,palette = cmap
                  )
p.set(xlabel='Sepal Len', ylabel='Sepal Width')
p.legend(title="Petal Length")
plt.show()

【问题讨论】:

    标签: python matplotlib seaborn


    【解决方案1】:

    为情节添加标题 How to add title to seaborn boxplot

    删除图例标题: Remove seaborn lineplot legend title

    更改图例“桶”的方式: 您已将色调设置为一列数据。我会将长度存储到我想要的新列中的组中,然后将色调设置为新列。

    【讨论】:

    • 我应该澄清一下。我正在尝试删除图例标题“petal_length”而不是添加情节标题。我已更改问题以反映这一点。
    • 请阅读已接受的答案,尤其是带有此代码的部分:handles, labels = ax.get_legend_handles_labels() ax.legend(handles=handles[1:], labels=labels[1:])
    【解决方案2】:

    使用get_legend_handles_labels(),您可以获取图例中的句柄和标签列表。然后,您可以创建图例,跳过句柄和标签的所有其他元素。

    from matplotlib import pyplot as plt
    import seaborn as sns
    
    cmap = sns.light_palette("green", as_cmap=True)
    iris = sns.load_dataset("iris")
    ax = sns.scatterplot("sepal_length", "sepal_width", data=iris, hue="petal_length", palette=cmap)
    ax.set_xlabel('Sepal Len'),
    ax.set_ylabel('Sepal Width')
    handles, labels = ax.get_legend_handles_labels()
    ax.legend(handles[1::2], labels[1::2], title="Petal Length")
    plt.show()
    

    【讨论】:

    • 这能回答你的问题吗?
    猜你喜欢
    • 2017-05-09
    • 2019-09-26
    • 2019-04-15
    • 1970-01-01
    • 2020-11-07
    • 2021-02-09
    • 2015-05-28
    • 2018-11-09
    • 2020-10-10
    相关资源
    最近更新 更多