0

过去,有人问过一个关于在 gplot 中自定义线宽的问题(参见在 MatLab 中,如何调整函数 'gplot' 绘制的线宽?)。我正在处理一个稍微复杂的版本,这使我无法使用那里给出的解决方案。因此,我想问如何做到以下几点:我想调整gplot的一些调用的线宽,而不是其他的。我就是多次调用 gplot 并使用 hold on 将它们绘制在一个图中。我正在尝试绘制具有多种边(A 和 A2)的图形。和其中的k条路径。我目前正在使用以下代码:

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

但我想绘制线宽较大的路径,同时将 A 和 A2 保持在标准线宽 1。

有人能帮我吗?非常感谢!

4

1 回答 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)
于 2013-06-28T10:22:59.177 回答