如何在seaborn.pairplot()中删除标记边缘?

4

Seaborn提供了一个方便的函数pairplot来创建散点图矩阵。不幸的是,一些标准的matplotlib命令无法与其一起使用。

sns.pairplot(matrix[cols[:4]].head(100), plot_kws=dict(alpha=.5, mew=0))

标记周围有一些难看的白色边缘。我尝试使用matplotlib中将用于去除它们的markeredgewidth关键字mew,但这是seaborn中的未知属性。我该如何去除这些边缘?
2个回答

6

散点图中没有 mew 关键字,而是使用 edgecolor 参数。因此:

sns.pairplot(data, plot_kws=dict(edgecolor="none"))

将消除散点周围的白边。


如果想要制作粗/细边缘标记,除了使用matplotlib的mew,目前是否有seaborn的替代方案?如果没有,是否有一种方法可以请求添加此功能以方便使用? - Sheldore
@Bazingaa 所有传递给 plot_kws 的参数都应该简单地传递给 scatter。例如尝试使用 plot_kws=dict(edgecolor="gold", linewidth=5, s=100) - ImportanceOfBeingErnest
这意味着 edgecolor="none"plot_kws=dict(linewidth=0) 的效果是一样的。我得到了相同的结果。你同意吗? - Sheldore
正确。既没有宽度为零的线条,也没有颜色为空的线条被绘制。 - ImportanceOfBeingErnest

3

ImportanceOfBeingErnest的回答更加精准。 或者,您还可以使用一个变通方法:像文档中的示例一样,将标记的前景色和边缘色都设置为所需颜色。

import seaborn as sns
sns.set(style="ticks", color_codes=True)
iris = sns.load_dataset("iris")
g = sns.pairplot(iris, plot_kws=dict(facecolor='b', edgecolor="b"))

根据IOBE的回答下面的评论,我进行了编辑:只需指定linewidth=0,与指定edgecolor="none"在标记上的效果相同。
g = sns.pairplot(iris, plot_kws=dict(linewidth=0))

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接