以画三维点为例,2维同样可以参照修改
以下所有代码的变量统一解释:
result是(N,3)的ndarray,表示N个点的三维坐标,
(N,3)是 result 这个二维 ndarray 的shape, 有 N 行 3列,每一行代表一个点的坐标,分别是 xyz 三个坐标。如:[(1,2,1),(9,7,8),(9,6,7)…]
label是(N,)的adarray,是N个点的label
根据点的label给点上色的三种方式
import matplotlib.pyplot as plt
ax = plt.subplot(1,1,1,projection='3d')
#第一种上色方式,映射到提供的cmap上
x = result[:,0]
y = result[:,1]
z = result[:,2]
ax.scatter(x, y, z, c=[label], cmap='viridis',alpha = 0.2)
pyplot.show()
其中alpha = 0.2表示点的透明度为0.2
#第二种上色方式,同样是映射到某些特定颜色上
x = result[:, 0]
y = result[:, 1]
z = result[:, 2]
ax.scatter(x, y, z, color= plt.cm.Set1(label / 10.),alpha = 0.2)
pyplot.show()
#第三种上色方式,遍历点的类别,分别用自己设定的颜色给每个类别的点上色
#此处点有6类,使用时按自己情况修改colors列表和range中的值
colors = ['b', 'c', 'g', 'k', 'm', 'r']
for index in range(6):
x = result[np.where(label == index),0]
y = result[np.where(label == index),1]
ax.scatter(x, y, z, c=colors[index], alpha=0.2)
pyplot.show()
根据点的位置上色
比如:点的三维坐标(假设点的坐标result已归一化到[0,255])分别代表rgb三个通道的值
此时参数c根据RGB值设定点的颜色
colors = result
ax.scatter(x, y, z, c=colors, alpha=0.2)
见博客:https://blog.csdn.net/qq_41060020/article/details/121563116