Как нарисовать разные поверхности в одной и той же цветовой гамме в MATLAB?
Вопрос
Я пытаюсь представить несколько поверхностных графиков*, масштаб которых немного отличается.Каждый график поверхности рисуется в виде отдельного подграфика и/или рисунка.
Прямо сейчас я использую цветовую карту по умолчанию, которая автоматически масштабирует весь диапазон цветовой карты в соответствии с моей фигурой, т.е.максимум моей поверхности всегда красный (в цветовом режиме «струя») независимо от величины этого максимума.
Я бы хотел, чтобы цветовая карта была согласованной между фигурами, а не разбросалась между минимумом и максимумом каждого отдельного графика.Таким образом, читатели могли оценить разницу в масштабах поверхностей, просто взглянув на карту цветов.
Есть идеи, как это сделать?
**На самом деле, если это имеет значение, я рисую результаты операции подгонки поверхности с помощью командыplot следующим образом:*
[myfit, gof] = fit( ... );
plot(fit)
Решение
Вам следует использовать caxis
функция.Например, если одна поверхность имеет высоту от 0 до 5, а другая — от 0 до 10, для обоих графиков выполните следующие действия:
caxis([0 10]);
заставит их обоих использовать ту же цветовую шкалу, что и график, охватывающий больший диапазон.Вы также можете позвонить caxis
с дескриптором оси в качестве первого аргумента:
caxis(hAxes, [0 10]); % Sets the color scaling for hAxes
Если не указано, caxis
регулирует цветовое масштабирование текущих осей.
Другие советы
Недавно я ответил на этот вопрос в видео-форме в своем блоге:
http://blogs.mathworks.com/videos/2009/03/27/setting-the-colormap-to-be-consistent-across-axes/