Как нарисовать разные поверхности в одной и той же цветовой гамме в MATLAB?

StackOverflow https://stackoverflow.com/questions/987283

  •  13-09-2019
  •  | 
  •  

Вопрос

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

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

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

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


**На самом деле, если это имеет значение, я рисую результаты операции подгонки поверхности с помощью команды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/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top