2013-06-28 3 views
0

В прошлом задан вопрос о настройке ширины линии в gplot (см. In MatLab, how to adjust the line width drawn by the function 'gplot'?). Я имею дело с немного более сложной версией, которая мешает мне использовать предоставленное там решение. Поэтому я хотел бы спросить, как сделать следующее: я хотел бы адаптировать ширину линии некоторых вызовов gplot, а не других. Я просто вызываю gplot несколько раз и использую удержание, чтобы запечатлеть их на одной фигуре. Я пытаюсь нарисовать график с несколькими типами ребер (A и A2). И k путей в нем. В настоящее время я использую следующий код:Matlab, обычная ширина линии для некоторых строк, но не все

figure 
hold on 
gplot(A,coor,'k*:') 
gplot(A2,coor,'k-') 
plot(coor(T,1),coor(T,2),'k.','MarkerSize',20) 
plot(coor(T,1),coor(T,2),'bo','MarkerSize',20) 
% a line where I define my own colors (not shown, since not relevant) 
set(gca,'ColorOrder',colors) 
hold all 
for i=1:k 
    gplot(Path,coor) 
end 
hold off 

Но я хотел бы обратить пути с большей шириной линии, сохраняя при этом А и А2 по стандартной ширине линии 1.

Может кто-нибудь мне помочь ? Большое спасибо!

ответ

1

Вы можете получить ребенок оси до и после добавления дополнительных строк, и только установить новые, чтобы иметь большую ширину линии:

figure 
hold on 
gplot(A,coor,'k*:') 
gplot(A2,coor,'k-') 
plot(coor(T,1),coor(T,2),'k.','MarkerSize',20) 
plot(coor(T,1),coor(T,2),'bo','MarkerSize',20) 
ChildrenBefore=get(gca,'children'); 
% a line where I define my own colors (not shown, since not relevant) 
set(gca,'ColorOrder',colors) 
hold all 
for i=1:k 
    gplot(Path,coor) 
end 
hold off 
ChildrenAfter=get(gca,'children'); 
NewChildren=setdiff(ChildrenAfter,ChildrenBefore); 
set(intersect(findall(gcf,'type','line'),NewChildren),'LineWidth',5) 
+0

Спасибо очень много. Это прекрасно работает! – dro

+0

@dro, пожалуйста, отметьте этот вопрос в качестве ответа, вот как работает SO! – macduff