Seaborn 散点图

Posted

技术标签:

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

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

    更改图例标题并从图例中删除系列名称。所以删除图例中出现的petal_length 更改图例的数字输出。更改为 [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()

【问题讨论】:

【参考方案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()

【讨论】:

这能回答你的问题吗?

以上是关于Seaborn 散点图的主要内容,如果未能解决你的问题,请参考以下文章

100天精通Python(可视化篇)——第82天:matplotlib绘制不同种类炫酷散点图参数说明+代码实战(二维散点图三维散点图散点图矩阵)

R语言可视化:散点图散点图和折线图(line charts)3D散点图旋转3D散点图气泡图corrgram包可视化相关性矩阵马赛克图( Mosaic plots)hexbin密度图

R数据可视化初阶-散点图散点图矩阵相关系数

可视化实验十:利用Python绘制棒图散点图

可视化实验十:利用Python绘制棒图散点图

seaborn使用jointplot函数为散点图添加边缘图为散点图添加边缘直方图(Marginal Plot in Python with Seaborn jointplot)