【pyplot】scatter根据点的label或位置设置不同颜色
生活随笔
收集整理的這篇文章主要介紹了
【pyplot】scatter根据点的label或位置设置不同颜色
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
本文的核心其實(shí)是設(shè)置scatter函數(shù)中的參數(shù)c
以畫三維點(diǎn)為例,2維同樣可以參照修改
以下所有代碼的變量統(tǒng)一解釋:
result是(N,3)的ndarray,表示N個(gè)點(diǎn)的三維坐標(biāo),label是(N,)的adarray,是N個(gè)點(diǎn)的label
根據(jù)點(diǎn)的label給點(diǎn)上色的三種方式
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表示點(diǎn)的透明度為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() #第三種上色方式,遍歷點(diǎn)的類別,分別用自己設(shè)定的顏色給每個(gè)類別的點(diǎn)上色 #此處點(diǎn)有6類,使用時(shí)按自己情況修改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()根據(jù)點(diǎn)的位置上色
比如:點(diǎn)的三維坐標(biāo)(假設(shè)點(diǎn)的坐標(biāo)result已歸一化到[0,255])分別代表rgb三個(gè)通道的值
此時(shí)參數(shù)c根據(jù)RGB值設(shè)定點(diǎn)的顏色
總結(jié)
以上是生活随笔為你收集整理的【pyplot】scatter根据点的label或位置设置不同颜色的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 虚拟现实技术会带来网吧的新春天吗?
- 下一篇: 微信 公众号用户授权流程