Python Matplotlib双色散点图
我需要给数组的一半着色一种颜色 假设我有两个连接的数组Python Matplotlib双色散点图,python,python-3.x,numpy,matplotlib,Python,Python 3.x,Numpy,Matplotlib,我需要给数组的一半着色一种颜色 假设我有两个连接的数组 arr1 = [[1,2, 3,4]] arr2 = [[1,2, 3,4]] arr 3 = np.concatenate((arr1, arr2), axis=0) plt.scatter(arr3[:,0], arr3[:,1], c= ???) 这是一个示例,我的真实数据集有16000个数据点,因此不可能使用单独的标签数组。从索引0-8000~我想变成红色。8000-16000我想成为蓝色
arr1 = [[1,2,
3,4]]
arr2 = [[1,2,
3,4]]
arr 3 = np.concatenate((arr1, arr2), axis=0)
plt.scatter(arr3[:,0], arr3[:,1], c= ???)
这是一个示例,我的真实数据集有16000个数据点,因此不可能使用单独的标签数组。从索引0-8000~我想变成红色。8000-16000我想成为蓝色。感谢一个简单的示例,因为您有一个16000个元素和二维数组。可以在同一图形中分别绘制两组点,如下所示:
plt.scatter(arr3[0:8000, 0], arr3[0:8000, 1], c="red")
plt.scatter(arr3[8000:16000, 0],arr3[8000:16000, 1], c="blue")
plt.show()
两组点将以不同的颜色显示在同一图形中。
您只需修改索引,使其适合您的数据。将其拆分为两个数组,并使用plt之类的工具在同一个绘图上绘制两次。plotX,y,'o',c='red'拆分数组在我的实际问题中是不可能的,需要连接只需将中间的索引作为mid=intlenarr3[0]找到一半即可/然后使用plt.scatterarr3[:,0][0:mid]、arr3[:,1][0:mid]、c='r'和plt.scatterarr3[:,0][mid:、arr3[:,1][mid:、c='b.您能绘制一个子集而不是拆分它吗?像plt.scatterx[0:100]、y[0:100]、'o'、'red'一样,没有理由认为在任何实际情况下都不可能拆分数组,但如果您认为有,那将是一个错误。当然,有一个学术解决方案,使用由蓝色和红色组成的彩色贴图,并向c参数提供一个新创建的数组,该数组由前8000个值和后8000个值的不同值组成。这是我建议的,但注释表明拆分数组是不可能的,对一些人来说reason@MohammadAthar但在我们的两种解决方案中,数组并不是字面上的“拆分”,数组保持连接,拆分只是通过索引完成的。我想不出任何情况下,有什么理由不能像这样索引矩阵。。。