Как наложить pcolor-график на контурный график, использующий другую цветовую карту? - PullRequest
7 голосов
/ 28 марта 2011

Минимальный пример, который не достигает этого:

[X,Y,Z] = peaks;
figure;
pcolor(X,Y,Z);
shading flat;
hold all;
axes;
contour(X,Y,Z);
colormap gray;  % this should only apply to the contour plot axes...
axis off;       % ... but it doesn't

Показывает как контурную диаграмму, так и диаграмму псевдоцвета на карте цветов в градациях серого.Однако я хочу лишь сделать контуры серыми.

Это всего лишь минималистичный пример, в действительности контурный график содержит разные данные с разным диапазоном, поэтому две независимые настройки caxisтребуется также.

1 Ответ

5 голосов
/ 28 марта 2011

Вы можете решить эту проблему, создав две цветовые карты и убедившись, что значения функций таковы, что они обращаются к правой части цветовой карты:

cm = [jet(64);gray(64)];
figure,
pcolor(X,Y,Z)
shading flat
hold on
%# Z in the contour starts after the maximum
%# of Z in pcolor
contour(X,Y,Z-min(Z(:))+max(Z(:))+2,'LineWidth',2)
%# apply the colormap
colormap(cm)

enter image description here

Для более удобного решения вы также можете взглянуть на этот файл обмена выбора недели

...