2016-09-21 2 views
0

Я комбинируя два графика/сюжеты в один, как это:Изменить цвет линии при совмещении графиков

fig1 = open('fig1.fig') 
fig2 = open('fig2.fig') 

ax1 = get(fig1, 'Children'); 
ax2 = get(fig2, 'Children'); 

for i = 1 : numel(ax2) 
    ax2Name = get(ax2(i), 'Children'); 
    copyobj(ax2Name, ax1(i)); 
end 

Можно ли модифицировать (изменить) цвет строки, которые существуют в fig2? Участок имеет 3 линии в разных цветах.

ответ

1
x = 1:0.1:5; 
y1 = x.^2; 
y2 = sqrt(x); 
y3 = sin(x); 

figure; 
plot(x, y1, x, y2); 
fig1 = gcf; 
ax1 = fig1.Children; % same as get(fig1, 'Children') 
line1 = ax1.Children; 

figure; 
plot(x, y3); 
fig2 = gcf; 
ax2 = fig2.Children 

for l = line1 % iterate over Line array 
    copyobj(l, ax2) % copy each Line object from ax1 to ax2 
end 

disp(ax2.Children) 
line2 = ax2.Children; 
line2(1).Color = [1 0 0]; % first line (^2): red 
line2(2).Color = [0 1 0]; % second line (sqrt): green 
line2(3).Color = [0 0 1]; % third line (sine): blue 
+0

Если один участок имеет 3 линии с разными цветами, возможно ли изменить только одну конкретную линию? –

+0

Я не знаю, как там заказаны. Кроме того, 'c (1)': первая строка, 'c (2)': вторая строка, 'c (3)': третья строка. 'set (c (3), 'Color', [0 1 0])' установите третий на зеленый. – Jeon

+0

Я немного не уверен, как совместить это с примером, который я представил в своем посте. Можно ли поместить мой пример? –