Bug introduced in 10.3 or earlier and fixed in 13.1
When all the points are the same kind, say Integer
then NearestNeighborGraph
will display a 3D graph when using {x,y,z}
coordinates. However, when just one of those points is say a Decimal
instead then one sees a 2D graph. It seems the reverse is true too. For example:
allIntegers = NearestNeighborGraph[{{0,0,0},{-1,1,1},{1,-1,1},{-1,-1,1},{1,1,1},{0,0,2},{0,0,1}},{All,2}];
allDecimals = NearestNeighborGraph[{{0.,0.,0.},{-1.,1.,1.},{1.,-1.,1.},{-1.,-1.,1.},{1.,1.,1.},{0.,0.,2.},{0.,0.,1.}},{All,2}];
oneInteger = NearestNeighborGraph[{{0,0.,0.},{-1.,1.,1.},{1.,-1.,1.},{-1.,-1.,1.},{1.,1.,1.},{0.,0.,2.},{0.,0.,1.}},{All,2}];
oneDecimal = NearestNeighborGraph[{{0.,0,0},{-1,1,1},{1,-1,1},{-1,-1,1},{1,1,1},{0,0,2},{0,0,1}},{All,2}];
Row[{allIntegers, allDecimals, oneInteger, oneDecimal}]
Displays:
Is there something I'm doing wrong or some parameter I need to pass? I'd like to be able to force 3D.