matlab中,用scatter画图,我想用1到5个数字来调用五种默认的颜色,要怎么做

matlab中,用scatter画图,我想用1到5个数字来调用五种默认的颜色,要怎么做,第1张

scatter的调用格式为:

SCATTER(X,Y,S,C)

,其中C为散点的颜色,可以为一个字符,如'y'表示黄色,此时所有的散点用相同的颜色。若

C为一个与length(X)长度相等的数组,则代表为每个散点赋予一个颜色值,该颜色值对应于当前系统的调色板。或者C为length(X)*3

的二维数组,则每一行代表一个用RGB值表示的颜色。

所以单纯用数字1~5无法实现你的想法。但你至少可以有两种其他方法:

1.查到你要的5种颜色的调色板索引值,存成一个一维数组·YourColor(5),每个颜色就是

YourColor(i);或者

2.查到你要的5种颜色的RGB数值存成一个二维数组YourColor2(5,3),每个颜色就是

YourColor2(i,:),

然后根据你的需要编程去吧。

scatter3函数输入项中有颜色C项,可设置各点颜色值,如:

[x,y,z] = sphere(16)

X = [x(:)*.5 x(:)*.75 x(:)]

Y = [y(:)*.5 y(:)*.75 y(:)]

Z = [z(:)*.5 z(:)*.75 z(:)]

S = repmat([1 .75 .5]*10,numel(x),1)

C = [x y z]

scatter3(X(:),Y(:),Z(:),S(:),C(:),'filled')

可以的,只要数据个数与点数相等就行,如:

[x,y,z]

=

sphere(16)

x

=

[x(:)*.5

x(:)*.75

x(:)]

y

=

[y(:)*.5

y(:)*.75

y(:)]

z

=

[z(:)*.5

z(:)*.75

z(:)]

s

=

repmat([1

.75

.5]*10,numel(x),1)

c

=

rand(numel(x),1)

scatter3(x(:),y(:),z(:),s(:),c(:),'filled'),

view(-60,60)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11296998.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存