请问有选项能调整无向图里绘制的边的长度吗?
mathematica吧
全部回复
仅看楼主
level 7
houxuanbo 楼主
我想操作的数据类似于
test = RandomInteger[10, {10, 5}];
从列表里筛选出在同一行中出现的数字,只在它们之间连上无向边
edge = (Flatten[
Map[Sort,
Table[{
#[[i, j]], #
[[i, k]]}, {i, 1, # // Length}, {j,
1, (#[[i]] // Length) - 1}, {k, j + 1, #[[i]] // Length}],
3], 2] // DeleteDuplicates) &[DeleteDuplicates /@ test];
除此之外我还想控制不同的边的长度,来控制不同节点之间的距离,我看Graph 有个EdgeWeight选项,但是用了以后边的长度好像也没有什么变化,想请教下各位怎么能控制节点间边的长度呢?
{Graph[test // Flatten // DeleteDuplicates,
Apply[UndirectedEdge, edge, 2], VertexLabels -> "Name",
EdgeWeight -> RandomReal[10, edge // Length]],
Graph[test // Flatten // DeleteDuplicates,
Apply[UndirectedEdge, edge, 2], VertexLabels -> "Name"]}
这两张图是上面那句的输出,左面用随机数设置了EdgeWeight,但是和右图没有设置EdgeWeight输出的图好像差不多,
2019年10月09日 12点10分 1
吧务
level 7
不能哦!设想一下边长为1的正三角形ABC,如果你设定一个点O,使OA=OB=OC=1,那是不是都要画成曲线呢?如果你设定OA=OB=OC=0.1,那又要怎么画呢?
2019年10月11日 01点10分 2
明白您的意思了,看来还是我想的不全面,我再想想其他办法,谢谢您
2019年10月12日 07点10分
1