NearestNeighborGraph[{elem1,elem2,…}]
给出一个有顶点 elem1,elem2,… 并且边连结各个 elemi 到与其相邻最近的顶点上的图.
NearestNeighborGraph[{elem1,elem2,…},k]
给出一个连结各个 elemi 到与其 k 个最近的邻点上的图.
NearestNeighborGraph[{elem1,elem2,…},{k,r}]
给出一个连结各个 elemi 到距离 elemi 半径为 r 的范围内的至多 k 个最近的邻点上的图.
NearestNeighborGraph[{elem1,elem2,…},{All,r}]
给出一个连结各个 elemi 到离 elemi 半径为 r 的范围内的所有顶点上的图.
NearestNeighborGraph
NearestNeighborGraph[{elem1,elem2,…}]
给出一个有顶点 elem1,elem2,… 并且边连结各个 elemi 到与其相邻最近的顶点上的图.
NearestNeighborGraph[{elem1,elem2,…},k]
给出一个连结各个 elemi 到与其 k 个最近的邻点上的图.
NearestNeighborGraph[{elem1,elem2,…},{k,r}]
给出一个连结各个 elemi 到距离 elemi 半径为 r 的范围内的至多 k 个最近的邻点上的图.
NearestNeighborGraph[{elem1,elem2,…},{All,r}]
给出一个连结各个 elemi 到离 elemi 半径为 r 的范围内的所有顶点上的图.
更多信息和选项
- 最近邻图也叫做 k-最近邻图(k-NNG).
- 当元素 elemi 到元素 elemj 的距离不大于 elemi 到任何其他元素的距离时, elemj 是 elemi 的最近邻.
- 当元素 elemj 到元素 elemi 的距离属于从 elemi 到任何其他元素的距离的第 k 小的范围内时, elemj 是 elemi 的 k-最近邻.
- NearestNeighborGraph 适用于各种数据,包括数值的、地理空间的、字符类型的和可视的.
- NearestNeighborGraph 有和 Graph 相同的选项,但有如下添加和改变: [所有选项的列表]
-
DirectedEdges Automatic 是否将边视为有向的 DistanceFunction Automatic 使用的距离度量或不同的 WorkingPrecision Automatic 使用的数值数据的精度 - NearestNeighborGraph 将相同的 DistanceFunction 视为 Nearest.
所有选项的列表
范例
打开所有单元 关闭所有单元基本范例 (2)
范围 (10)
基本用法 (4)
NearestNeighborGraph[Range[10]]NearestNeighborGraph[Range[10], 2]NearestNeighborGraph[Range[10], {3, 2}]NearestNeighborGraph[Range[10], {All, 3}]数值数据 (1)
布尔数据 (1)
地理位置 (1)
字符串 (1)
图像 (1)
颜色 (1)
NearestNeighborGraph[{RGBColor[1., 0.7573220867762727, 0.8225376261211264], RGBColor[1., 0.9053403248427643, 0.21717287340883917], RGBColor[1., 0.5544801460824762, 0.12056345655596812], RGBColor[1., 0.2818404077149421, 0.1073945311994069], RGBColor[1., 0.12423838985259317, 0.19023691956664956], RGBColor[0.8, 0.4542154246540884, 0.31688034954543], RGBColor[0.8, 0.5483770742736782, 0.16977938137471082], RGBColor[0.8, 0.03163746197875539, 0.5781619271042624], RGBColor[0.8, 0.1612089376881538, 0.15737556414394493], RGBColor[0.8, 0.947661405438111, 0.8404962405438101], RGBColor[0.5, 0.8592283961197744, 0.04768022523989446], RGBColor[0.5, 0.04821552495323611, 0.9686564512239644], RGBColor[0.5, 0.5966778129134023, 0.8001648440588174], RGBColor[0.5, 0.5307402622478448, 0.7029200788120107], RGBColor[0.5, 0.6654316628707297, 0.9850955091132039]}, 2, VertexShapeFunction -> "Name"]选项 (89)
DistanceFunction (7)
默认情况下,对数值数据使用 EuclideanDistance:
NearestNeighborGraph[RandomReal[1, {50, 2}]]EditDistance 用于字符串:
NearestNeighborGraph[{"abc", "xyz", "bca", "wxyz"}]GeoDistance 用于地理位置:
NearestNeighborGraph[CountryData["SouthAmerica"]]JaccardDissimilarity 用于布尔数据:
NearestNeighborGraph[RandomChoice[{True, False}, {20, 2}], DistanceFunction -> JaccardDissimilarity]ColorDistance 用于颜色:
NearestNeighborGraph[{RGBColor[1., 0.7573220867762727, 0.8225376261211264], RGBColor[1., 0.9053403248427643, 0.21717287340883917], RGBColor[1., 0.5544801460824762, 0.12056345655596812], RGBColor[1., 0.2818404077149421, 0.1073945311994069], RGBColor[1., 0.12423838985259317, 0.19023691956664956], RGBColor[0.8, 0.4542154246540884, 0.31688034954543], RGBColor[0.8, 0.5483770742736782, 0.16977938137471082], RGBColor[0.8, 0.03163746197875539, 0.5781619271042624], RGBColor[0.8, 0.1612089376881538, 0.15737556414394493], RGBColor[0.8, 0.947661405438111, 0.8404962405438101], RGBColor[0.5, 0.8592283961197744, 0.04768022523989446], RGBColor[0.5, 0.04821552495323611, 0.9686564512239644], RGBColor[0.5, 0.5966778129134023, 0.8001648440588174], RGBColor[0.5, 0.5307402622478448, 0.7029200788120107], RGBColor[0.5, 0.6654316628707297, 0.9850955091132039]}]ImageDistance 用于图像:
g = [image];NearestNeighborGraph[Flatten@ImagePartition[g, 50]]DistanceFunction 可以作为符号给出:
dist[{u_, v_}, {x_, y_}] := 3Abs[u - x] + 2Abs[v - y]NearestNeighborGraph[RandomReal[2, {50, 2}], DistanceFunction -> dist]NearestNeighborGraph[RandomReal[2, {50, 2}], DistanceFunction -> (3Abs[#1[[1]] - #2[[1]]] + 2Abs[#1[[2]] - #2[[2]]]&)]Method (1)
methods = {Automatic, "Scan", "KDtree", "Octree"};data3 = RandomReal[1, {10 ^ 4, 3}];TableForm[Table[{
First[AbsoluteTiming[NearestNeighborGraph[data3, Method -> m];]]}, {m, methods}], TableHeadings -> {methods, {"Timing"}}]methods = {Automatic, "Scan", "KDtree"};data20 = RandomReal[1, {10 ^ 4, 20}];TableForm[Table[{
First[AbsoluteTiming[NearestNeighborGraph[data20, Method -> m];]]}, {m, methods}], TableHeadings -> {methods, {"Timing"}}]WorkingPrecision (1)
用 WorkingPrecision->MachinePrecision 确定使用的是计算最快的方法:
data = RandomReal[1, {100, 2}];First[AbsoluteTiming[NearestNeighborGraph[data]]]First[AbsoluteTiming[Nearest[data, WorkingPrecision -> MachinePrecision]]]AnnotationRules (2)
DirectedEdges (1)
NearestNeighborGraph[{"aa", "ab", "bb"}, 2]使用 DirectedEdges->True 来生成有向图:
NearestNeighborGraph[{"aa", "ab", "bb"}, 2, DirectedEdges -> True]EdgeLabels (7)
NearestNeighborGraph[Range[3], EdgeLabels -> {12 -> "Hello"}]el = EdgeList@NearestNeighborGraph[{"aa", "ab", "bb"}, 2]NearestNeighborGraph[{"aa", "ab", "bb"}, 2, EdgeLabels -> Table[el[[i]] -> Subscript["e", i], {i, Length[el]}]]NearestNeighborGraph[Range[4], EdgeLabels -> {12 -> [image], 23 -> [image], 34 -> [image]}]使用 Placed 和符号位置来控制沿着边的标签放置位置:
Table[NearestNeighborGraph[Range[4], EdgeLabels -> {34 -> Placed["■■■", p]}, PlotLabel -> p], {p, {"Start", "Middle", "End"}}]Table[NearestNeighborGraph[Range[4], EdgeLabels -> {23 -> Placed["■■■", p]}, PlotLabel -> p, BaselinePosition -> Bottom], {p, {0, 1 / 4, 1 / 3}}]Table[NearestNeighborGraph[Range[4], EdgeLabels -> {23 -> Placed["■■■", {1 / 2, p}]}, PlotLabel -> p, BaselinePosition -> Bottom], {p, {{0, 0}, {1 / 2, 1 / 2}, {1, 1}}}]NearestNeighborGraph[Range[4], EdgeLabels -> {12 -> Placed[{"lbl1", "lbl2"}, {"Start", "End"}]}]NearestNeighborGraph[Range[4], EdgeLabels -> {12 -> Placed[{"lbl1", "lbl2", "lbl3"}, {"Start", "Middle", "End"}]}]用 Tooltip 到 StatusArea 的值来自动标签:
NearestNeighborGraph[Range[4], EdgeLabels -> Placed["Name", Tooltip]]NearestNeighborGraph[Range[4], EdgeLabels -> Placed["Name", StatusArea]]EdgeShapeFunction (6)
获取 EdgeShapeFunction 内置设置的列表:
ResourceData["EdgeShapeFunction"]NearestNeighborGraph[{"aa", "ab", "bb"}, 2, EdgeShapeFunction -> "Line"]Table[NearestNeighborGraph[{"aa", "ab", "bb"}, 2, EdgeShapeFunction -> {{ef, "ArrowSize" -> 0.1}}, PlotLabel -> ef], {ef, {"BoxLine", "DiamondLine", "DotLine"}}]Table[NearestNeighborGraph[{"aa", "ab", "bb"}, 2, EdgeShapeFunction -> {{ef, "ArrowSize" -> 0.1}}, PlotLabel -> ef], {ef, ResourceData["EdgeShapeFunction", "FilledArrow"]}]Table[NearestNeighborGraph[{"aa", "ab", "bb"}, 2, EdgeShapeFunction -> {{ef, "ArrowSize" -> 0.1}}, PlotLabel -> ef], {ef, ResourceData["EdgeShapeFunction", "UnfilledArrow"]}]Table[NearestNeighborGraph[{"aa", "ab", "bb"}, 2, EdgeShapeFunction -> {{ef, "ArrowSize" -> 0.1}}, PlotLabel -> ef], {ef, ResourceData["EdgeShapeFunction", "CarvedArrow"]}]NearestNeighborGraph[Range[3], EdgeShapeFunction -> {12 -> "DotLine"}]NearestNeighborGraph[Range[3], EdgeShapeFunction -> {12 -> "BoxLine", "DotLine"}]ef[pts_List, e_] :=
Block[{s = 0.015, g = [image]}, {Arrowheads[{{s, 0.33, g}, {s, 0.67, g}}], Arrow[pts]}]NearestNeighborGraph[{"aa", "ab", "bb"}, 2, EdgeShapeFunction -> ef]EdgeShapeFunction 可以和 EdgeStyle 结合:
NearestNeighborGraph[{"aa", "ab", "bb"}, 2, EdgeStyle -> Blue, EdgeShapeFunction -> (Line[#1]&)]EdgeShapeFunction 优先于 EdgeStyle:
NearestNeighborGraph[{"aa", "ab", "bb"}, 2, EdgeStyle -> Blue, EdgeShapeFunction -> ({Red, Line[#1]}&)]EdgeStyle (2)
EdgeWeight (2)
NearestNeighborGraph[{"aa", "ab", "bb"}, 2, EdgeWeight -> RandomInteger[5, 3]]WeightedAdjacencyMatrix[%]//MatrixFormNearestNeighborGraph[{"aa", "ab", "bb"}, 2, EdgeWeight -> {a, b, c}]WeightedAdjacencyMatrix[%]//MatrixFormGraphHighlight (3)
NearestNeighborGraph[Range[3], VertexSize -> Tiny, GraphHighlight -> {1}]NearestNeighborGraph[Range[3], VertexSize -> Tiny, GraphHighlight -> {23}]NearestNeighborGraph[Range[3], VertexSize -> Tiny, GraphHighlight -> {1, 2, 12, 23}]GraphHighlightStyle (2)
获取 GraphHighlightStyle 内置设置的列表:
ResourceData["GraphHighlightStyle"]使用 GraphHighlightStyle 的内置设置:
NearestNeighborGraph[Range[3], GraphHighlight -> {1, 23}, VertexSize -> Small, GraphHighlightStyle -> #, PlotLabel -> #]& /@ Select[ResourceData["GraphHighlightStyle"], # =!= Automatic&]GraphLayout (5)
NearestNeighborGraph[Range[10], GraphLayout -> Automatic]Table[NearestNeighborGraph[RandomReal[1, {30, 2}], GraphLayout -> l, PlotLabel -> l], {l, {"CircularEmbedding", "SpiralEmbedding"}}]Table[NearestNeighborGraph[Range[10], GraphLayout -> l, PlotLabel -> l], {l, {"SpringEmbedding", "SpringElectricalEmbedding", "HighDimensionalEmbedding"}}]VertexCoordinates 覆盖 GraphLayout 坐标:
{NearestNeighborGraph[Range[3], GraphLayout -> "SpringElectricalEmbedding"],
NearestNeighborGraph[Range[3], GraphLayout -> "SpringElectricalEmbedding", VertexCoordinates -> Table[{i, i}, {i, 0, 2}]]}用 AbsoluteOptions 来提取用构图算法计算的 VertexCoordinates:
NearestNeighborGraph[Range[3]]AbsoluteOptions[%, VertexCoordinates]PlotTheme (4)
基本主题 (2)
VertexCoordinates (3)
NearestNeighborGraph[Range[3]]用 AbsoluteOptions 提取最后的顶点坐标:
AbsoluteOptions[%, VertexCoordinates]ellipseLayout[n_, {a_, b_}] := Table[{a Cos[2Pi / n u], b Sin[2Pi / n u]}, {u, 1, n}]Graphics[Point[ellipseLayout[20, {2, 1}]]]NearestNeighborGraph[Range[10], VertexCoordinates -> ellipseLayout[10, {2, 1}]]VertexCoordinates 优先于 GraphLayout:
NearestNeighborGraph[Range[3], VertexCoordinates -> Table[{i, i}, {i, 3}], GraphLayout -> "CircularEmbedding"]VertexLabels (13)
NearestNeighborGraph[Range[3], VertexLabels -> "Name"]NearestNeighborGraph[Range[3], VertexLabels -> {2 -> "one"}]NearestNeighborGraph[Range[4], VertexLabels -> Table[i -> Subscript[v, i], {i, 4}]]NearestNeighborGraph[Range[3], VertexLabels -> {1 -> [image], 2 -> [image], 3 -> [image]}, ImagePadding -> 20]使用 Placed 和符号位置来控制标签放置位置,包括外面的位置:
Table[NearestNeighborGraph[Range[2], VertexSize -> 0.1, VertexShapeFunction -> "Square", VertexLabels -> Table[i -> Placed["■■■", p], {i, 2}], PlotLabel -> p, ImagePadding -> 20], {p, {Before, After, Below, Above}}]pl = {{Before, Below}, {After, Below}, {Before, Above}, {After, Above}};Table[NearestNeighborGraph[Range[2], VertexSize -> 0.1, VertexShapeFunction -> "Square", ImagePadding -> 20, VertexLabels -> Table[i -> Placed["■■■", p], {i, 2}], PlotLabel -> p], {p, pl}]Table[NearestNeighborGraph[Range[2], VertexSize -> 0.45, VertexLabels -> Table[i -> Placed["■■■", p], {i, 2}], VertexShapeFunction -> "Square", PlotLabel -> p], {p, {Left, Top, Right, Bottom}}]pl = {{Left, Bottom}, {Right, Bottom}, {Left, Top}, {Right, Top}};Table[NearestNeighborGraph[Range[3], VertexSize -> 0.45, VertexShapeFunction -> "Square", VertexLabels -> Table[i -> Placed["■■■", p], {i, 2}], PlotLabel -> p], {p, pl}]Table[NearestNeighborGraph[Range[3], VertexSize -> 0.25, VertexShapeFunction -> "Square", VertexLabels -> Table[i -> Placed[[image], p], {i, 2}], PlotLabel -> p, BaselinePosition -> Bottom], {p, {{0, 0}, {1 / 2, 1 / 2}, {1, 1}}}]Table[NearestNeighborGraph[Range[3], VertexSize -> 0.35, VertexShapeFunction -> "Square", VertexLabels -> Table[i -> Placed[[image], {{1, 1}, p}], {i, 2}], PlotLabel -> p, BaselinePosition -> Bottom], {p, {{0, 0}, {1 / 2, 1 / 2}, {1, 1}}}]NearestNeighborGraph[Range[3], VertexLabels -> {1 -> Placed[{"lbl1", "lbl2"}, {Above, Below}]}]NearestNeighborGraph[Range[3], VertexLabels -> {1 -> Placed[{"lbl1", "lbl2", "lbl3", "lbl4"}, {Above, After, Below, Before}]}]使用参数 Placed 来控制包括 Tooltip 的格式化:
NearestNeighborGraph[Range[3], VertexLabels -> Placed["Name", Tooltip]]或 StatusArea:
NearestNeighborGraph[Range[3], VertexLabels -> Placed["Name", StatusArea]]rotateLabel[lbl_] := Rotate[lbl, 45Degree]NearestNeighborGraph[Range[3], VertexLabels -> Table[i -> Placed["xxx", Below, rotateLabel], {i, 3}]]panelLabel[lbl_] := Panel[lbl, FrameMargins -> 0, Background -> StandardYellow]NearestNeighborGraph[Range[3], VertexLabels -> Table[i -> Placed["xxx", Center, panelLabel], {i, 3}]]hyperlinkLabel[lbl_] := Hyperlink[lbl, "http://www.wolfram.com"]NearestNeighborGraph[Range[3], VertexLabels -> Table[i -> Placed["xxx", Center, hyperlinkLabel], {i, 3}]]VertexShape (5)
用任意 Graphics、 Image 或 Graphics3D 作为顶点形状:
Table[NearestNeighborGraph[Range[3], VertexShape -> s, VertexSize -> Medium], {s, {[image], [image], [image]}}]NearestNeighborGraph[Range[3], VertexShape -> {2 -> [image]}, VertexSize -> Medium]VertexShape 可以和 VertexSize 结合:
Table[NearestNeighborGraph[Range[3], VertexSize -> s, VertexShape -> [image], PlotLabel -> s], {s, {Small, Large}}]VertexShape 不受 VertexStyle 影响:
NearestNeighborGraph[Range[3], VertexSize -> 0.2, VertexShape -> [image], VertexStyle -> Blue]VertexShapeFunction 优先于 VertexShape:
NearestNeighborGraph[Range[3], VertexSize -> 0.2, VertexShapeFunction -> "Square", VertexShape -> [image]]VertexShapeFunction (10)
获取 VertexShapeFunction 的内置设置列表:
ResourceData["VertexShapeFunction"]在 "Basic" 集合中使用 VertexShapeFunction 的内置设置:
ResourceData["VertexShapeFunction", "Basic"]Table[NearestNeighborGraph[Range[3], VertexShapeFunction -> vf, VertexSize -> 0.2, PlotLabel -> vf], {vf, {"Triangle", "Square", "Rectangle", "Pentagon", "Hexagon", "Octagon"}}]Table[NearestNeighborGraph[Range[3], VertexShapeFunction -> vf, VertexSize -> 0.2, PlotLabel -> vf], {vf, {"DownTrapezoid", "UpTrapezoid", "Parallelogram", "FiveDown", "Circle", "Diamond", "Star", "Capsule"}}]在 "Rounded" 集合中使用 VertexShapeFunction 内置设置:
ResourceData["VertexShapeFunction", "Rounded"]Table[NearestNeighborGraph[Range[3], VertexShapeFunction -> vf, VertexSize -> 0.2, PlotLabel -> vf], {vf, ResourceData["VertexShapeFunction", "Rounded"]}]在 "Concave" 集合使用 VertexShapeFunction 内置设置:
ResourceData["VertexShapeFunction", "Concave"]Table[NearestNeighborGraph[Range[3], VertexShapeFunction -> vf, VertexSize -> 0.2, PlotLabel -> vf], {vf, ResourceData["VertexShapeFunction", "Concave"]}]NearestNeighborGraph[Range[3], VertexShapeFunction -> { 1 -> "Square"}, VertexSize -> 0.2]NearestNeighborGraph[Range[3], VertexShapeFunction -> { 1 -> "Square", "Triangle"}, VertexSize -> 0.2]NearestNeighborGraph[Range[3], VertexShapeFunction -> (Inset[[image], #]&)]vf[{xc_, yc_}, name_, {w_, h_}] :=
Block[{xmin = xc - w, xmax = xc + w, ymin = yc - h, ymax = yc + h},
Polygon[{{xmin, ymin}, {xmax, ymax}, {xmin, ymax}, {xmax, ymin}}]
];NearestNeighborGraph[Range[3], VertexShapeFunction -> vf, VertexSize -> 0.2]VertexShapeFunction 可以与 VertexStyle 结合:
vf1[{xc_, yc_}, name_, {w_, h_}] := Rectangle[{xc - w, yc - h}, {xc + w, yc + h}]NearestNeighborGraph[Range[3], VertexSize -> 0.2, VertexStyle -> Blue, VertexShapeFunction -> vf1]VertexShapeFunction 优先于 VertexStyle:
vf2[{xc_, yc_}, name_, {w_, h_}] := {Red, Rectangle[{xc - w, yc - h}, {xc + w, yc + h}]}NearestNeighborGraph[Range[3], VertexSize -> 0.2, VertexStyle -> Blue, VertexShapeFunction -> vf2]VertexShapeFunction 优先于 VertexSize:
NearestNeighborGraph[Range[3], VertexShapeFunction -> "Star", VertexSize -> {1 -> Small, Medium}]VertexShapeFunction 优先于 VertexShape:
NearestNeighborGraph[Range[3], VertexSize -> 0.3, VertexShapeFunction -> "Star", VertexShape -> [image]]VertexSize (8)
NearestNeighborGraph[Range[3], VertexSize -> Automatic]Table[NearestNeighborGraph[Range[3], VertexSize -> s, PlotLabel -> s], {s, {Tiny, Small, Medium, Large}}]Table[NearestNeighborGraph[Range[3], VertexSize -> s, PlotLabel -> s], {s, 0.1, 1, 0.3}]Table[NearestNeighborGraph[Range[3], VertexSize -> {"Scaled", s}, PlotLabel -> {"Scaled", s}], {s, 0.1, 1, 0.3}]Table[NearestNeighborGraph[Range[3], VertexSize -> s, PlotLabel -> s], {s, {{0.1, 0.2}, {0.2, 0.1}}}]NearestNeighborGraph[Range[3], VertexSize -> {1 -> 0.2, 2 -> 0.3}]VertexSize 可以和 VertexShapeFunction 结合:
Table[NearestNeighborGraph[Range[3], VertexSize -> s, VertexShapeFunction -> "Square", PlotLabel -> s], {s, {0.05, 0.1, 0.2}}]VertexSize 可以和 VertexShape 结合:
Table[NearestNeighborGraph[Range[3], VertexSize -> s, VertexShape -> [image], PlotLabel -> s], {s, {0.1, 0.2, 0.4}}]VertexStyle (5)
Table[NearestNeighborGraph[Range[3], VertexStyle -> style, VertexSize -> 0.3, PlotLabel -> style], {style, {Yellow, EdgeForm[Dashed]}}]NearestNeighborGraph[Range[3], VertexStyle -> {1 -> Blue, 2 -> Red}, VertexSize -> 0.2]VertexShapeFunction 可以和 VertexStyle 结合:
vf1[{xc_, yc_}, name_, {w_, h_}] := Rectangle[{xc - w, yc - h}, {xc + w, yc + h}]NearestNeighborGraph[Range[3], VertexSize -> 0.2, VertexStyle -> Blue, VertexShapeFunction -> vf1]VertexShapeFunction 优先于 VertexStyle:
vf2[{xc_, yc_}, name_, {w_, h_}] := {Red, Rectangle[{xc - w, yc - h}, {xc + w, yc + h}]}NearestNeighborGraph[Range[3], VertexSize -> 0.2, VertexStyle -> Blue, VertexShapeFunction -> vf2]VertexStyle 可以和 BaseStyle 结合:
NearestNeighborGraph[Range[3], VertexStyle -> LightBlue, BaseStyle -> EdgeForm[Dotted], VertexSize -> 0.2]VertexStyle 优先于 BaseStyle:
NearestNeighborGraph[Range[3], VertexStyle -> LightBlue, BaseStyle -> Gray, VertexSize -> 0.2]VertexShape 不受 VertexStyle 影响:
NearestNeighborGraph[Range[3], VertexSize -> 0.2, VertexShape -> [image], VertexStyle -> Blue]VertexWeight (2)
NearestNeighborGraph[Range[3], VertexWeight -> {2, 3, 4}]AnnotationValue[{%, 1}, VertexWeight]NearestNeighborGraph[Range[3], VertexWeight -> {a, b, c}]AnnotationValue[{%, 1}, VertexWeight]应用 (7)
基本用法 (2)
图形和网络 (2)
几何 (1)
近似搜索 (2)
(g = ImagePartition[ [image], 32])// GridNearestNeighborGraph[Flatten@g, 1, VertexShapeFunction -> "Name", VertexSize -> Large]dict = Nearest[DictionaryLookup[]]["pickel", 10]NearestNeighborGraph[dict, VertexLabels -> "Name"]属性和关系 (7)
使用 VertexCount 和 EdgeCount 来数顶点和边:
g = NearestNeighborGraph[RandomReal[1, {50, 2}]]{VertexCount[g], EdgeCount[g]}用 VertexList 和 EdgeList 来以标准顺序列举顶点和边:
g = NearestNeighborGraph[{"aaaa", "abaa", "bbbb", "aaaba"}, 2]{VertexList[g], EdgeList[g]}从图中计算 AdjacencyMatrix:
g = NearestNeighborGraph[RandomReal[1, {6, 2}]];AdjacencyMatrix[g]//MatrixFormNearestNeighborGraph[RandomReal[1, {50, 2}]]NearestNeighborGraph[RandomChoice[{True, False}, {50, 3}], DistanceFunction -> JaccardDissimilarity]在0.2半径内使用 SpatialGraphDistribution 生成最近邻图:
RandomGraph[SpatialGraphDistribution[30, 0.2]]用 Nearest 和 NearestFunction 获取最近邻图:
data = Range[10];nf = Nearest[data]edges = Table[vLast[nf[v, 2]], {v, data}];SimpleGraph[Graph[%]]NearestNeighborGraph[data]文本
Wolfram Research (2015),NearestNeighborGraph,Wolfram 语言函数,https://reference.wolfram.com/language/ref/NearestNeighborGraph.html.
CMS
Wolfram 语言. 2015. "NearestNeighborGraph." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/NearestNeighborGraph.html.
APA
Wolfram 语言. (2015). NearestNeighborGraph. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/NearestNeighborGraph.html 年
BibTeX
@misc{reference.wolfram_2026_nearestneighborgraph, author="Wolfram Research", title="{NearestNeighborGraph}", year="2015", howpublished="\url{https://reference.wolfram.com/language/ref/NearestNeighborGraph.html}", note=[Accessed: 14-July-2026]}
BibLaTeX
@online{reference.wolfram_2026_nearestneighborgraph, organization={Wolfram Research}, title={NearestNeighborGraph}, year={2015}, url={https://reference.wolfram.com/language/ref/NearestNeighborGraph.html}, note=[Accessed: 14-July-2026]}