MATLAB怎么绘制图节点和边及自定义加权图
来源:网络收集 点击: 时间:2024-03-06第一步:plot函数可以绘制带节点和边的图,首先我们小试牛刀,使用plot函数绘制一个稀疏邻接矩阵图,MATLAB代码如下:
a=8;
b= delsq(numgrid(L,a+3));
c= graph(b,OmitSelfLoops)
plot(c)
其中,a,b,c是创建一个稀疏邻接矩阵。

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

第三步:上面这个图看起来是一个曲面的,立体感不强,下面我们使用行设定符来绘制一个足球形状的点边球图,MATLAB代码如下:
G = graph(bucky);
plot(G,-.b,NodeLabel,{})
其中,在plot函数中可以自定义点形状,大小,边连接线,颜色,标签等。

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

第五步:上面介绍了点边图的绘制,下面介绍绘制带点有方向箭头的有向图,绘制有向图需要定义点和方向及边缘,我们需使用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命令窗口中,然后运行即可成功绘制一个多节点多支路星状有向图,如下图所示。

第七步:我们来绘制加权图并进行自定义,我们在MATLAB命令窗口中输入如下代码并运行即可绘制一个加权图,得出的加权图绘制结果如下图所示。
a1= ;
b1= ;
weights = ;
c1= graph(a1,b1,weights)
a= ;
b= ;
c= ;
plot(c1,XData,a,YData,b,ZData,c,EdgeLabel,c1.Edges.Weight)

第八步:关于加权图,我们还可以使用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;可以给节点添加颜色和标记。部分程序运行结果如下图所示。

在绘制加权图的时候需要注意检查边数和连接点,注意重复并进行修改。
在绘制加权图的时候可以使用p.MarkerSize =5;来增加节点的大小,使用p.LineStyle = _;来改变线形,使用p.XData 、p.YData 改变x、y坐标。
MATLABMATLAB绘节点图MATLAB绘加权图MATLAB绘有向图版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_253541.html