Как установить стиль линий по умолчанию для графиков в MATLAB?

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

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

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

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

1 ответ

Решение

Ваше первое желание может быть просто изменить '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');
Другие вопросы по тегам