MATLAB怎么绘制图节点和边及自定义加权图

2025-12-25 14:27:32

1、第一步:plot函数可以绘制带节点和边的图,首先我们小试牛刀,使用plot函数绘制一个稀疏邻接矩阵图,MATLAB代码如下:

a=8;

b= delsq(numgrid('L',a+3));

c= graph(b,'OmitSelfLoops')

plot(c)

其中,a,b,c是创建一个稀疏邻接矩阵。

MATLAB怎么绘制图节点和边及自定义加权图

2、第二步:我们将绘制稀疏邻接矩阵图的代码复制到MATLAB命令窗口中,然后运行即可,plot()函数即可将我们创建好的稀疏邻接矩阵绘制成带节点的边的图,运行结果如下图所示。

MATLAB怎么绘制图节点和边及自定义加权图

3、第三步:上面这个图看起来是一个曲面的,立体感不强,下面我们使用行设定符来绘制一个足球形状的点边球图,MATLAB代码如下:

G = graph(bucky);

plot(G,'-.b','NodeLabel',{})

其中,在plot函数中可以自定义点形状,大小,边连接线,颜色,标签等。

MATLAB怎么绘制图节点和边及自定义加权图

4、第四步:我们将此绘制点边球图的代码复制到MATLAB命令窗口中并运行,即可成功绘制出一个蓝色点球图,如下图所示。

MATLAB怎么绘制图节点和边及自定义加权图

5、第五步:上面介绍了点边图的绘制,下面介绍绘制带点有方向箭头的有向图,绘制有向图需要定义点和方向及边缘,我们需使用digraph()函数,addedge()函数和plot函数,使用force布局,绘制有向图的MATLAB代码如下:

a= digraph(1,3:8);

a= addedge(a,3,9:18);

a= addedge(a,18,19:24)

plot(a,'Layout','force')其中,我们在addedge函数中增加节点和边,a后面第一个数是中心节点,第二个数和第三个数定义向量终点及支路名称。

MATLAB怎么绘制图节点和边及自定义加权图

6、第六步:将此绘制有向图的代码复制到MATLAB命令窗口中,然后运行即可成功绘制一个多节点多支路星状有向图,如下图所示。

MATLAB怎么绘制图节点和边及自定义加权图

7、第七步:我们来绘制加权图并进行自定义,我们在MATLAB命令窗口中输入如下代码并运行即可绘制一个加权图,得出的加权图绘制结果如下图所示。

a1= [1 1 1 1 1 2 2 7 7 9 3 3 1 4 10 8 4 5 6 8];

b1= [2 3 4 5 7 6 7 5 9 6 6 10 10 10 11 11 8 8 11 9];

weights = [1 1 1 1 3 3 2 4 1 6 2 8 8 9 3 2 10 12 15 16];

c1= graph(a1,b1,weights)

a= [0 0.5 -0.5 -0.5 0.5 0 1.5 0 2 -1.5 -2];

b= [0 0.5 0.5 -0.5 -0.5 2 0 -2 0 0 0];

c= [5 3 3 3 3 0 1 0 0 1 0];

plot(c1,'XData',a,'YData',b,'ZData',c,'EdgeLabel',c1.Edges.Weight)

MATLAB怎么绘制图节点和边及自定义加权图

8、第八步:关于加权图,我们还可以使用view(3)函数来选择观察的角度,使用LWidths = 4*c1.Edges.Weight/max(c1.Edges.Weight);来以权重调整各条边的线宽,这里最大线宽为4,还可以使用eLabels = {'a' 'b' 'c' 'b' 'c' 'a' 'c' 'a' 'b' 'c' 'b' 'a'};nLabels = {'{0}','{a}','{b}','{c}','{a,b}','{a,c}','{b,c}','{a,b,c}'};来给边和节点添加标签,使用p.Marker = 's';p.NodeColor = 'g';可以给节点添加颜色和标记。部分程序运行结果如下图所示。

MATLAB怎么绘制图节点和边及自定义加权图

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢