Как вы рисуете разные поверхности с одинаковой цветовой гаммой в MATLAB? - PullRequest
3 голосов
/ 12 июня 2009

Я пытаюсь представить несколько поверхностных графиков *, для которых масштаб немного отличается. Каждый участок поверхности изображен на отдельном участке и / или фигуре.

Прямо сейчас я использую цветовое сопоставление по умолчанию, которое автоматически масштабирует весь диапазон цветовой карты до моей фигуры, т.е. максимум моей поверхности всегда красный (в цветном режиме 'jet') независимо от величины этого максимума.

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

Есть идеи, как это сделать?


** На самом деле, в случае, если это что-то меняет, я строю результаты операции подгонки поверхности с помощью команды plot следующим образом: *

   [myfit, gof] = fit( ... );
   plot(fit)

Ответы [ 2 ]

5 голосов
/ 12 июня 2009

Вы должны использовать функцию caxis. Например, если одна поверхность имеет высоту от 0 до 5, а другая - от 0 до 10, выполните следующее для обоих графиков:

caxis([0 10]);

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

caxis(hAxes, [0 10]);  % Sets the color scaling for hAxes

Если не указано, caxis регулирует масштабирование цвета текущих осей.

3 голосов
/ 12 июня 2009

Я недавно ответил на этот вопрос в видео форме на моем блоге:

http://blogs.mathworks.com/videos/2009/03/27/setting-the-colormap-to-be-consistent-across-axes/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...