使用Matlab中的`spy`得到不同数字的不同颜色

3
当我使用spy检查稀疏模式时,它不能区分某些元素和其他元素。有没有办法做到这一点?例如,等于10的元素为红色,等于9的所有元素为蓝色。我能在一个spy图中得到这个吗?
我只能改变绘图点的大小和样式。
1个回答

5
以下是您可以实现此操作的方式:
spy(a,'k')
hold on
spy(a==10,'r')
spy(a==9,'b')
hold off

另一种方法是使用散点图 (scatter) 而不是间谍图 (spy) :

[x,y] = find(a);
clr = a(a~=0);
scatter(x,y,[],clr)
set(gca,'YDir','rev')

在这种情况下,点将根据当前图像的色彩映射以a值进行着色。

有什么原因选择其中一个而不是另一个吗? - TheRealFakeNews
在散点图的情况下,您需要对所有值进行着色,而不仅仅是选择的值。 - yuk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接