Matlab: Как назначить разные палитры / палитры разным поверхностей на том же рисунке

Я новичок в Matlab, и у меня есть несколько вопросов. У меня есть две поверхности и плоскость на одном рисунке. Я хочу использовать разные палитры и шкалы цветов. для b и другой цветовой карты и шкалы цветов для c. s - фиксированный цвет, так что это не проблема.

Позвольте мне попытаться объяснить, чего я пытаюсь достичь:

cmap1 = colormap (topobathy) -> cmap1 равен 64x3, как и ожидалось

cmap2 = colormap (redwhitegreen)

create cdata1 используя cmap1 (это первая часть, которую я не могу понять, как масштабировать данные z с помощью cmap1, по умолчанию CData содержит значения z)

b = surf (x, y, z, cdata1)

colorbar для b с использованием значений z

c = pcolor (x, y, (z-z0)) - я хочу использовать cmap2 для этого.

цветовая шкала для c с использованием значений (z-z0)

Вот то, что у меня было до сих пор, и проблемы, с которыми я сталкиваюсь

b=surf(x,y,z);
colormap(topobathy);
cbar1=colorbar;
set(get(cbar1,'ylabel'),'String', 'Elevation (m)', 'Rotation', 90)
hold on;
s=surf(x,y,z1,'FaceColor',[0.278 0.788 0.788])
hold on;
change=z-z0;     
c=pcolor(x,y,change)
set(c,'ZData',100 + 0*change); %plotting it above the other surfaces
colormap(redwhitegreen)`

в этот момент цветовая карта установлена ​​на красно-белый-зеленый для b, цветовая шкала на b {{ 1}} Я не могу получить вторую цветовую панель с ее собственным подъемом и т. Д.

Я использовал freezeColors и cbfreeze, описанные в этой ссылке: http://blogs.mathworks.com/pick / 2009/07/24 / using-multiple-colormaps-in-a-single-figure /

но одно работает, а другое напутывает (вероятно, это моя вина). Я хочу узнать, как получить полный контроль над своими объектами, в любом случае не используя внешние m-файлы.

Любая помощь приветствуется.

11
задан theenemy 9 November 2011 в 23:19
поделиться