Python 3.x 如何取消点的重叠,并以相同的坐标分布点(像一个小簇)?
我有一个数据集,格式是[[idx,x-coord,y-coord]…]:Python 3.x 如何取消点的重叠,并以相同的坐标分布点(像一个小簇)?,python-3.x,matplotlib,Python 3.x,Matplotlib,我有一个数据集,格式是[[idx,x-coord,y-coord]…]: [[0, 1, 0], [1, 0, 1], [2, 1, 0], [3, 0, 1], [4, 0, 1], [5, 0, 1], [6, 1, 1], [7, 1, 0], [8, 1, 1], [9, 1, 0], [10, 1, 0], [11, 1, 0], [12, 1, 0], [13, 1, 0], [14, 1, 0], [15, 1, 0], [16, 0, 1], [17, 0, 1], [18, 1
[[0, 1, 0], [1, 0, 1], [2, 1, 0], [3, 0, 1], [4, 0, 1], [5, 0, 1], [6, 1, 1], [7, 1, 0], [8, 1, 1], [9, 1, 0], [10, 1, 0], [11, 1, 0], [12, 1, 0], [13, 1, 0], [14, 1, 0], [15, 1, 0], [16, 0, 1], [17, 0, 1], [18, 1, 0], [19, 0, 1]]
如果我使用scatter
函数来显示它们,例如:
dataset_point = np.array(dataset_point)
plt.scatter(x = dataset_point[:,1],y = dataset_point[:,2])
plt.show()
它只能在地图上显示三个点,但是,我想区分相同坐标中的点,就像一个小簇,这样在地图上可以看到相同坐标中的所有点。matplotlib中有什么方法可以完成它吗?您可以添加一些随机值。例如,
np.random.normal(0,0.1,N)
会给每个N
值添加一些小的高斯扰动np.random.uniform(-0.2,0.2,N)
将点分布到一个小的矩形区域中。如果有更多点,可以将区域设置得更大一些,还可以使用alpha
使散射点半透明
将numpy导入为np
将matplotlib.pyplot作为plt导入
dataset_point=np.数组([[0,1,0],[1,0,1],[2,1,0],[3,0,1],[4,0,1],[5,0,1],[6,1,1],[7,1,0],
[8, 1, 1], [9, 1, 0], [10, 1, 0], [11, 1, 0], [12, 1, 0], [13, 1, 0], [14, 1, 0], [15, 1, 0],
[16, 0, 1], [17, 0, 1], [18, 1, 0], [19, 0, 1]])
N=数据集\u点形状[0]
plt.散射(x=数据集_点[:,1]+np.随机.正常(0,0.1,N),
y=数据集_点[:,2]+np.随机.正常(0,0.1,N),
α=0.5)
plt.show()
我尝试在x和y中添加np.random.rand(),但我无法确保所有点都不重叠……恐怕matplotlib中没有这样的方法,最接近的是seaborn的,但这仅用于分类数据(不适用于x和y)你能评论一下给出的答案是否有助于你的目标吗?你如何确保这里没有重叠?重叠是不确定的,但不太可能alpha
有助于处理重叠点,使重叠区域变暗。是的,我明白了-但根据OP的评论,这基本上是OP已经尝试过的(alpha除外)