Как установить стиль линий по умолчанию для графиков в MATLAB? - PullRequest
9 голосов
/ 23 ноября 2010

У меня есть массив данных, которые я хотел бы вывести на график

temp=0.5*rand(500,10);
[~,offset]=meshgrid(1:500,1:10);
figure(101)
plot(temp+offset')

Как настроить стиль линии для автоматического перехода к следующему стилю после того, как цвета линии прошли через один цикл?

Для этого примера я хотел бы, чтобы 8-10-ые строки имели другой стиль линий.Я могу сделать это вручную, но я бы хотел, чтобы Matlab сделал это для меня, если я могу где-то установить опцию по умолчанию.

1 Ответ

15 голосов
/ 23 ноября 2010

В первую очередь вы можете просто изменить 'LineStyleOrder' свойство осей перед построением ваших данных.К сожалению, высокоуровневые функции построения графиков, такие как PLOT , сбрасывают свойство 'LineStyleOrder' осей до значения по умолчанию '-' перед построением.Одним из решений является изменение значения по умолчанию , используемого всеми объектами осей на корневом уровне .Например:

set(0,'DefaultAxesLineStyleOrder',{'-',':'});

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

set(0,'DefaultAxesColorOrder',[1 0 0; 0 1 0; 0 0 1]);

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

Как только значения свойств по умолчанию для корня установлены, они будут оставаться такими до закрытия MATLAB.При повторном открытии значения свойств по умолчанию будут возвращены к их заводским значениям.Такие команды, как CLEAR , не будут возвращать свойствам по умолчанию их заводские значения.Вместо этого вам следует установить значение свойства по умолчанию 'remove', чтобы отменить пользовательские значения, например:

set(0,'DefaultAxesLineStyleOrder','remove');  %# Sets the default back to '-'

В качестве другой альтернативы изменению свойств по умолчанию, используемых всеми осямиобъекты, если вы измените NextPlot свойство отдельных осей на что-либо , за исключением 'replace', вы можете затем изменить 'LineStyleOrder' или 'ColorOrder' свойства, которые вы хотите, и PLOT не будет сбрасывать их значения по умолчанию.Например, это должно делать то, что вы хотите:

set(gca,'NextPlot','add','LineStyleOrder',{'-',':'});
plot(temp+offset');
...