Как изменить цвет линии графика matlab (например, colormap)?

у меня есть 2D-пространство, в котором определено значение функции (вы можете думать об этом как о многообразии). Теперь я построил значение функции с помощью contourf и изменил цветовую карту на что-то более мягкое, чем jet. Пока выглядит неплохо.

теперь я хочу нарисовать линию, представляющую состояние во времени в моем пространстве. Это также возможно с помощью . Но я хочу еще несколько улучшений: есть дополнительное состояние, которое пока скрыто (значение 0...50). Я хотел бы цвет линии для изменения в соответствии с этим скрытым состоянием. Поэтому в некотором смысле применить отдельную цветовую карту к линии, построенной по plot как, например, на участке водопада.

возможно ли это (или что-то подобное) с помощью matlab?

спасибо

3 ответов


посмотреть в Клайн.м функция от обмена файлами, я думаю, что это именно то, что вам нужно.


если вы хотите использовать интерполированное затенение или изменить цвета с помощью цветовой карты, то вы хотите построить свои данные в виде сетки и установить edgecolor свойство соответствующим образом. Обратите внимание, что для того, чтобы построить его как сетку, вам нужно будет дублировать его так, чтобы он имел размер не менее 2 в каждом направлении.

h = mesh([X(:) X(:)], [Y(:) Y(:)], [Z(:) Z(:)], [C(:) C(:)], ...
    'EdgeColor', 'interp', 'FaceColor', 'none');

вы также можете посмотреть на MeshStyle свойство, если вы хотите построить несколько строк одновременно.

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


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