Seaborn散点图函数如何采样数据?

问题描述 投票:1回答:3

我已经绘制了一个海洋分布图。我的数据包含5000个数据点。通过查看情节,我显然没有看到5000点。因此,我敢肯定,seaborn散点图函数会执行某种采样。我想知道图中每个点代表多少个数据点?如果取决于代码,则代码如下:

g = sns.scatterplot(x=data['x'], y=data['y'],hue=data['P'], s=40,  edgecolor='k', alpha=0.8, legend="full")

plot

python seaborn scatter-plot sampling
3个回答
2
投票

没有任何东西可以真正暗示我Seaborn正在对您的数据进行采样。但是,您可以确认g轴上的数据。查询轴的子级以获取PathCollection(散点图)对象:

g.get_children()

它可能是列表中返回的第一项。从那里可以使用get_offsets检索数据并检查其形状。

g.get_children()[0].get_offsets().shape

0
投票

据我所知,没有进行采样。在您发布的图片上,您可以看到大多数数据点只是重叠的,这可能就是您看不到5000个点的原因。用更少的点尝试,您会发现它们都被绘制了。


0
投票

为了检查Seaborn的散点图是否消除了点,这里是一种查看5000个不同点的方法。似乎没有任何遗漏。

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

x = np.linspace(1, 100, 100)
y = np.linspace(1, 50, 50)
X, Y = np.meshgrid(x, y)
Z = (X * Y) % 25
X = np.ravel(X)
Y = np.ravel(Y)
Z = np.ravel(Z)

sns.scatterplot(x=X, y=Y, s=15, hue=Z, palette=plt.cm.plasma, legend=False)
plt.show()

5000 points

© www.soinside.com 2019 - 2024. All rights reserved.