Octave 倍频程绘制矩形

Octave 倍频程绘制矩形,octave,Octave,我想生成一个有点像散点图但带有矩形的图。每个矩形都需要有一个由坐标确定的特定大小和起始位置。我能得到的一切 然而,我想做的是用另一个值z给每个矩形上色。但是我不知道怎么做 您可以通过下面的代码看到我在尝试什么 x=rand(1,10)*10; y=rand(1,10)*10; w=rand(1,10)*5; h=rand(1,10)*20; axis([0 10 0 20]); for i=1:10 rectangle('Position',[x(i) y(i) w(i) h(i)]) end

我想生成一个有点像散点图但带有矩形的图。每个矩形都需要有一个由坐标确定的特定大小和起始位置。我能得到的一切

然而,我想做的是用另一个值z给每个矩形上色。但是我不知道怎么做

您可以通过下面的代码看到我在尝试什么

x=rand(1,10)*10;
y=rand(1,10)*10;
w=rand(1,10)*5;
h=rand(1,10)*20;
axis([0 10 0 20]);

for i=1:10
rectangle('Position',[x(i) y(i) w(i) h(i)])
endfor
这将生成附加的图形

编辑:我知道“FaceColor”和“EdgeColor”属性,但是如果我有很多矩形,比如说100个左右,我想用相应的z值给每个属性上色,我似乎无法让这些属性接受一个z值数组


阅读。
'FaceColor'
'EdgeColor'
属性都有明确的文档记录……是的,我了解“FaceColor”和“EdgeColor”…这些属性允许我通过输入RGB三元组来着色…但是如果我有100个矩形要着色…我可以使用FaceColor和Z值数组…它似乎不起作用。然后将Z值映射到RGB三元组。StackOverflow不是代码编写服务。在期望别人付出努力之前,试着付出一些努力。这可能是有用的。一个更好的方法是使用,但它不是在八度,但你可以很容易地使自己。只需将颜色复制到矩阵中,并将RGB重新缩放到[0 1]范围内。生成视觉上不同的颜色,这就是为什么真正理解其背后的过程很重要。如果颜色贴图中的矩形多于颜色,则此方法将不起作用。既然你已经指出你有100个矩形,你就在这个领域。刚刚看到这篇文章,看到它已经3年了。我在寻找类似的答案。但为什么有人会像他们在这里一样,在没有任何解释的情况下标记出合理的问题和建议的答案呢?病人这样做会导致堆栈溢出成为回声室。
x=rand(1,10)*10;
y=rand(1,10)*10;
w=rand(1,10)*5;
h=rand(1,10)*20;
z=randi(10,1,10)/10;
axis([0 10 0 20]);

for i=1:10

cm=colormap; 
colorID=max(1, sum(z(i)>[0:1/length(cm(:,1)):1]));
myColor=cm(colorID,:);

rectangle('Position',[x(i) y(i) w(i) h(i)],'EdgeColor',myColor)

endfor