Pyplot-scatter根据点的label或位置设置不同颜色

以画三维点为例,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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值