0

我有以下数据集:

dataset = 
Dataset[{<|"City" -> "Belgrade" , "Population" -> 1500000|>, <|
"City" -> "Ljubljana", "Population" -> 300000|>, <|
"City" -> "Sarajevo", "Population" -> 275000|>, <|
"City" -> "Zagreb", "Population" -> 800000|>, <|
"City" -> "Skopje", "Population" -> 530000|>, <|
"City" -> "Podgorica", "Population" -> 180000|>}]

我想使用城市人口之间的欧几里得距离(Wolfram Mathematica 中的函数:EuclideanDistance)从中构建邻近矩阵。我进行了一些尝试,但最终没有成功。有人有想法吗?

先感谢您!

4

2 回答 2

0

尝试

pop=Normal[dataset[All,"Population"]];
MatrixPlot[Outer[Sqrt[(#1-#2)^2]&,pop,pop]]

我认为它实现了 EuclidianDistance

于 2021-08-05T21:58:08.113 回答
0

添加FrameTicks和使用EuclideanDistance.

pop = Normal[dataset[All, "Population"]];
cities = Normal[dataset[All, "City"]];
ticks = List @@@ Thread[Range@Length@cities -> (Style[#, 14, Black] &) /@ cities]

MatrixPlot[Outer[EuclideanDistance[##] &, pop, pop],
 FrameTicks -> {ticks, ticks, ticks, ticks},
 Mesh -> True,
 MeshStyle -> Black,
 ImageSize -> 600]

在此处输入图像描述

于 2021-11-15T01:49:30.647 回答