Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Matplotlib双色散点图_Python_Python 3.x_Numpy_Matplotlib - Fatal编程技术网

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但在我们的两种解决方案中,数组并不是字面上的“拆分”,数组保持连接,拆分只是通过索引完成的。我想不出任何情况下,有什么理由不能像这样索引矩阵。。。