Plot 如何在Scilab中为两个子批次分别绘制颜色贴图?

Plot 如何在Scilab中为两个子批次分别绘制颜色贴图?,plot,3d,surface,scilab,colormap,Plot,3d,Surface,Scilab,Colormap,我有两个surf制作的子图,因为两个绘制的变量具有非常不同的行为和比例,我想用独立的颜色贴图绘制它们。我试着按照下面的方式进行编码,但最后一个颜色映射是适用于所有事物的。如何使每个子地块都具有不同的颜色贴图?我目前用这段代码得到的图像是 “颜色贴图”属性附加到图形,因此无法为每个轴设置颜色贴图。 但是,可以按照下面的示例执行您想要的操作 function c=colorindex(z,ncolor) //compute the color index for each surface val

我有两个surf制作的子图,因为两个绘制的变量具有非常不同的行为和比例,我想用独立的颜色贴图绘制它们。我试着按照下面的方式进行编码,但最后一个颜色映射是适用于所有事物的。如何使每个子地块都具有不同的颜色贴图?我目前用这段代码得到的图像是


“颜色贴图”属性附加到图形,因此无法为每个轴设置颜色贴图。 但是,可以按照下面的示例执行您想要的操作

function c=colorindex(z,ncolor)
  //compute the color index for each surface value
  mn=min(z);mx=max(z)
  c=round((z-mn)/(mx-mn)*(ncolor-1))+1
endfunction

//first surface
t=linspace(0,2*%pi,30);
z1=sin(t)'*cos(t);

//second one
z2=z1.*z1;

f=scf(0);clf;
defined a colormap with the catenation of the 2 requested colormaps
f.color_map=[jetcolormap(32);oceancolormap(32)];
//draw the first surface with the first part of the colormap
subplot(211);surf(z1,colorindex(z1,32),"ColorDataMapping","direct")
//draw the second surface with the second part of the colormap
subplot(212);surf(z2,colorindex(z2,32)+32,"ColorDataMapping","direct")

您是否尝试过
gca()
gce()
?我两次都尝试过,但都没有成功。第一个不起作用,因为它处理轴而不是曲面。。。第二个“gce”给了我一个错误,说“color_map”是一个“不存在于此句柄”的属性。这就是我试图编写代码的方式<代码>图=scf(1)子批次(1,3,1)
surf(平面图(:,:),N(:,:)
e=gce()
figA=e.children(1)
figA.color\u map=jetcolormap(32)还有其他方法可以做到这一点吗?似乎应该有一个简单的方法来做到这一点,我只是还没有找到。谢谢你的回答,伙计。事实上,该示例适用于我的数据,但它使在图形窗口中执行任何其他操作变得非常复杂(例如:为两个数据集设置单独的默认比例范围)。我决定在一个单独的窗口中绘制每个选项,这样我也可以更改它们的选项,并进一步探索输出。但是再次感谢你的帮助!
function c=colorindex(z,ncolor)
  //compute the color index for each surface value
  mn=min(z);mx=max(z)
  c=round((z-mn)/(mx-mn)*(ncolor-1))+1
endfunction

//first surface
t=linspace(0,2*%pi,30);
z1=sin(t)'*cos(t);

//second one
z2=z1.*z1;

f=scf(0);clf;
defined a colormap with the catenation of the 2 requested colormaps
f.color_map=[jetcolormap(32);oceancolormap(32)];
//draw the first surface with the first part of the colormap
subplot(211);surf(z1,colorindex(z1,32),"ColorDataMapping","direct")
//draw the second surface with the second part of the colormap
subplot(212);surf(z2,colorindex(z2,32)+32,"ColorDataMapping","direct")