Heptahedral Graph

Author

Eric W. Weisstein
October 18, 2024

This notebook downloaded from http://mathworld.wolfram.com/notebooks/GraphTheory/HeptahedralGraph.nb.

For more information, see Eric's MathWorld entry http://mathworld.wolfram.com/HeptahedralGraph.html.

©2024 Wolfram Research, Inc. except for portions noted otherwise

Enumeration

V5.2

Timing[Length[graphs=Select[Graphs[7],PolyhedralQ]]]

ShowGraphArray[
Partition[RecognizeGraph/@graphs,7,7,{1,1},{}
],VertexStyle->Disk[.1],VertexColor->Red,AspectRatio->Automatic
]

V6

ShowGraphArray[Partition[CombinatoricaGraph/@GraphData["Polyhedral",7],7,7,{1,1},{}],ImageSize->500]

GraphData["Polyhedral",7]

DeleteCases[%,{_Integer,_Integer}]

V7

GraphData["Polyhedral",7]

h=Select[GetGraphData[7],MemberQ[GetGraphData[#,"Classes"],"Polyhedral"]&]

Length[h]

GraphicsGrid[Partition[GraphPlot[GetGraph[#],Method->None,PlotLabel->TextCell[GetGraphData[#,"Name"],PageWidth->120,TextAlignment->Center],BaseStyle->{FontSlant->Italic}]&/@h,5,5,{1,1},{}],ImageSize->600]

V13

heptahedral=GraphData["Polyhedral",7]

Length[heptahedral]

GraphicsGrid[Partition[Show[StyleGraphs@GraphData[#],PlotLabel->TextCell[Style[GraphData[#,"Name"],Directive[Black,Italic,FontFamily->"Times"]],PageWidth->120,TextAlignment->Center]]&/@heptahedral,UpTo[5]],ImageSize->600,Dividers->All]

Duals

Select[heptahedral,!DataPaclets`GraphDataDump`MyGraphQ[GraphData[#,"DualGraph","Name"]]&]

RecognizeGraph[DualGraph[GraphData[#]]]&/@%

GraphicsGrid[Partition[Quiet@Check[Show[StyleGraphs@GraphData[dual=GraphData[#,"DualGraph","Name"]],PlotLabel->TextCell[GraphData[dual,"Name"],PageWidth->120,TextAlignment->Center],LabelStyle->{Black,"FontFamily"->"Times",Italic}],Graphics[]]&/@heptahedral,UpTo[5]],Dividers->All,Alignment->Top,ImageSize->650]

Embeddings

<<MathWorld`Graphs`

GraphData["Polyhedral",7]//Length

{"Heptahedral", 1} == {"Wheel", 7}

GraphData[{"Heptahedral",1},"#"]

{"Heptahedral", 2} == "HemiobeliskGraph"

GraphData[{"Heptahedral",2},"#"]

{"Heptahedral", 3} == {"SelfDual", {7, 5}}

GraphData[{"Heptahedral",3},"#"]

{"Heptahedral", 4}

GraphData[{"Heptahedral",4},"StandardName"]

Primary

GraphData[{"Heptahedral",4}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",4},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",4},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",4},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Heptahedral",4},"Edges"]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Degenerate

GraphData[{"Heptahedral",4},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Heptahedral",4},"Graph","Degenerate"]

Bilateral

GraphData[{"Heptahedral",4},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Heptahedral",4},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",4}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",4}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

Planar

GraphData[{"Heptahedral",4},"Planar"]

GraphData[{"Heptahedral",4},"Graph","Planar"]//StyleGraphs

Tutte embeddings

<<IGraphM`

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",4}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",4}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{,,,}

Tutte embedding construction 3 #1

GraphPlot[RotateGraph[,2Pi/3]]

v=Join[UnitCirclePoints[3],CirclePoints[1/4,3]];
v=Join[v,{Mean[v[[{4,6}]]]}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[4,1,2,3,1,5,4,7,6,5,3,6],e[2,5,7]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #2

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]}},Table[{i,1/2},{i,-3/8,3/8,1/4}]];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[5,1,2,3,1,4,5,6,7,2],e[4,3,7,1,6]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #3

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]}},Table[{i,1/2},{i,-3/8,3/8,1/4}]];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,3,5,6,3,7,2],e[1,5,4],{6,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #4

GraphPlot[RotateGraph[,-2Pi/3]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{-1/8,3/4}},Table[{i,1/2},{i,-1/4,1/4,1/4}]];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,5,6,7,2],e[4,3,6,4,5,3,7]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Halin

GraphData[{"Heptahedral",4},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Heptahedral",4},"LCFSignature"]

GraphData[{"Heptahedral",4},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",4},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",4}],Debug->True]//Timing

GraphData[{"Heptahedral",4},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",4},"Graph","Matchstick"]//StyleGraphs

Default embedding

g=Graph@GraphData[{"Heptahedral",4},"Edges"]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

3D default

Graph3D[GraphData[{"Heptahedral",4},"Edges"]]

3D All

GraphData[{"Heptahedral",4},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",4},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",4},"Polyhedron"]}]

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",4},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"Heptahedral",4}],-1]}]

Graphics3D[poly2=Polyhedron[Normalize/@poly[[1]],poly[[2]]]]

(can=FindCanonicalPolyhedron[poly2,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 5}

Names

GraphData[{"Heptahedral",5},"StandardName"]

GraphData[{"Heptahedral",5},"StandardNames"]

Primary

GraphData[{"Heptahedral",5}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",5},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",5},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",5},"EdgeList"]]

Default embedding

GraphPlot@RotateGraph[Graph@GraphData[{"Heptahedral",5},"Edges"],Pi]

v=Join[CirclePoints[{1,Pi/2},6],{{0,0}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[{1,6},1,7,6,4,2,7],e[3,7,5]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

GraphPlot@RotateGraph[Graph@GraphData[{"Heptahedral",5},"Edges"],Pi]

e[l__]:=Sequence@@Partition[{l},2,1]
v={{0,0},{1/2,0},{1,0},{1,1},{1/2,1},{0,1},{1/2,1+Sqrt[3]/2}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,5,6,1,5,3],e[6,7,4,2,6],{5,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

GraphPlot@RotateGraph[,-Pi/4]

v=Join[Subdivide[{-1,0},{1,0},4],{{0,1},{0,-1}}];
g=Graph[Range@Length@v,UndirectedEdge@@@{e[1,7,5,6,1,2,3,4,5],e[7,4,6,2,7,3]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

Degenerate

GraphData[{"Heptahedral",5},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Heptahedral",5},"Graph","Degenerate"]

Bilateral

GraphData[{"Heptahedral",5},"Graph","Bilateral"]//StyleGraphs

Grid[DeleteCases[Monitor[{g=#,BilateralGraphEmbeddingTypes[#],GraphSymmetryGroup[#]}&/@GraphData[{"Heptahedral",5},"Graph","All"],g],{_,_,TransformationGroup[{}]}],Dividers->All,Alignment->{{Center,{Left}}}]

Circular

GraphData[{"Heptahedral",5},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",5}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",5}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

Planar

GraphData[{"Heptahedral",5},"Planar"]

GraphData[{"Heptahedral",5},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",5}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",5}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{,,}

Tutte embedding construction 3 #1

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{0,1/4},{-1/4,1/2},{0,1/2},{1/4,1/2}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,2],e[1,5,3,7,4,6,3],e[5,6,7]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #2

GraphPlot[RotateGraph[,2Pi/3]]

v=Join[UnitCirclePoints[3],CirclePoints[1/4,3]];
AppendTo[v,Mean[v[[{4,6}]]]];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[2,5,1,2,3,1,4,5,6,7,4],e[5,7,3,6]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #3

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]}},{{-1/4,1/4},{1/4,1/4},{-1/4,3/4},{1/4,3/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[6,1,2,3,1,4,5,7,6,3,7,4],e[1,5,2]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Halin

GraphData[{"Heptahedral",5},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Heptahedral",5},"LCFSignature"]

GraphData[{"Heptahedral",5},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",5},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",5}],Debug->True]//Timing

GraphData[{"Heptahedral",5},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",5},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Heptahedral",5},"Edges"]]

3D All

GraphData[{"Heptahedral",5},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",5},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",5},"Polyhedron"]}]

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",5},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"Heptahedral",5}],-1]}]

Graphics3D[poly2=Polyhedron[Normalize/@poly[[1]],poly[[2]]]]

(can=FindCanonicalPolyhedron[poly2,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 6}

Names

GraphData[{"Heptahedral",6},"StandardName"]

GraphData[{"Heptahedral",6},"StandardNames"]

Primary

GraphData[{"Heptahedral",6}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",6},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",6},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",6},"EdgeList"]]

Default embedding

RotateGraph[Graph@GraphData[{"Heptahedral",6},"Edges"],Pi]

e[l__]:=Sequence@@Partition[{l},2,1]
v={{0,0},{1/2,0},{1,0},{1,1},{1/2,1},{0,1},{1/2,1+Sqrt[3]/2}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,5,6,1,5,3],e[6,7,4,2,6],e[7,5,2]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"Heptahedral",6}]]]

v={{0,-1},{1,0},{0,1},{-1,0},{0,0}};
v=Join[v,Mean[v[[#]]]&/@{{4,5,1},{1,5,2}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,1,6,5,7,1],e[6,4,5,2,7],e[3,5,1]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

RectilinearCrossingCount[g]

GraphPlot@RotateGraph[Graph@GraphData[{"Heptahedral",6},"Edges"],Pi]

v=Join[CirclePoints[{1,Pi/2},6],{{0,0}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[{1,6},1,7,4,2,7,5],e[3,7,6,4]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

GraphPlot@RotateGraph[,-Pi/4]

v=Delete[Join[Subdivide[{-1,0},{1,0},4],{{0,-1},{0,1},{0,1/2}}],{3}];
g=Graph[Range@Length@v,UndirectedEdge@@@{e[1,5,4,6,1,2,7,3,4,7,1],e[6,7,5],e[2,5,3]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

Degenerate

GraphData[{"Heptahedral",6},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Heptahedral",6},"Graph","Degenerate"]

Bilateral

GraphData[{"Heptahedral",6},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Heptahedral",6},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",6}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",6}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

Planar

GraphData[{"Heptahedral",6},"Planar"]

GraphData[{"Heptahedral",6},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",6}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",6}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{,,,}

RecognizeGraph/@%

Tutte embedding construction 3 #1

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]}},Table[{i,1/2},{i,-1/2,1/2,1/2}],{{1/4,3/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,5,6,2],e[4,3,5,7,6,1],e[6,3,7]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #2

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]}},Table[{i,1/2},{i,-3/8,3/8,1/4}]];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[6,1,2,3,1,4,3,5,1,7,6,5,4],e[2,7,3]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #3

GraphPlot[RotateGraph[,2Pi/3]]

v=Join[UnitCirclePoints[3],CirclePoints[1/4,3]];
AppendTo[v,Mean[v[[{4,6}]]]];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,7,6,5,4],e[1,7,5,2],e[6,3,5,1]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #4

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{-1/4,1/4},{1/4,1/4},{-1/4,3/4},{1/4,3/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[5,7,3,6,1,2,3,1,4,5,2],e[5,1,7,6],{4,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Halin

GraphData[{"Heptahedral",6},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Heptahedral",6},"LCFSignature"]

GraphData[{"Heptahedral",6},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",6},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",6}],Debug->True]//Timing

GraphData[{"Heptahedral",6},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",6},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Heptahedral",6},"Edges"]]

3D All

GraphData[{"Heptahedral",6},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",6},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",6},"Polyhedron"]}]

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",6},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"Heptahedral",6}],1]}]

Graphics3D[poly2=Polyhedron[Normalize/@poly[[1]],poly[[2]]]]

(can=FindCanonicalPolyhedron[poly2,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 7} == "HemicubicalGraph"

GraphData[{"Heptahedral",7},"#"]

{"Heptahedral", 8}

GraphData[{"Heptahedral",8},"StandardName"]

All

GraphData[{"Heptahedral",8},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",8},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",8},"EdgeList"]]

Default embedding

GraphPlot@RotateGraph[Graph[GraphData[{"Heptahedral",8},"Edges"]],Pi]

v={{0,0},{1/2,0},{1,0},{1,1},{1/2,1},{0,1},{1/2,1/2}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,5,6,1,7,3],e[6,2,4],e[2,7,5]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

GraphPlot@GraphData[{"Heptahedral",8},"Edges"]

v=Join[CirclePoints[{1,Pi/2},6],{{0,0}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[{1,6},1,7,4],e[3,1,5],e[2,7,6]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

GraphPlot[GraphData[{"Heptahedral",8},"Edges"],GraphLayout->"SpringEmbedding"]

v={{0,0},{1/2,0},{1,0},{1,1},{1/2,1},{0,1},{1/2,1/2}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[{1,6},1,5,3],e[2,7,5],e[6,7,4]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

gs={,};

Degenerate

GraphData[{"Heptahedral",8},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Heptahedral",8},"Graph","Degenerate"]

Bilateral

GraphData[{"Heptahedral",8},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Heptahedral",8},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",8}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",8}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

Planar

GraphData[{"Heptahedral",8},"Planar"]

GraphData[{"Heptahedral",8},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Heptahedral",8},{"RCN","CN"}]

GraphData[{"Heptahedral",8},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"Heptahedral",8}]]]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

RectilinearCrossingCount[g]

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",8}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",8}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{,,,}

Tutte embedding construction 4 #1

GraphPlot[RotateGraph[,Pi/4]]

v=Join[UnitCirclePoints[4,Pi/2],{{0,0},{-1/Sqrt[2]/2,0},{1/Sqrt[2]/2,0}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,1,6],e[7,1,5,3],e[2,6,5,7,4]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 4 #2

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #1

GraphPlot[RotateGraph[,-2Pi/3]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{-1/2,1/4},{1/2,1/4},{-1/4,3/4},{1/4,3/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,5,2],e[4,6,3,7,5,3],{6,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #2

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]}},{{-3/8,3/4},{-1/8,3/4},{1/8,3/4},{3/8,3/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,5,6,7,2,5],e[4,3,6],{3,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

LCF

GraphData[{"Heptahedral",8},"LCFSignature"]

GraphData[{"Heptahedral",8},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",8},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",8}],Debug->True]//Timing

GraphData[{"Heptahedral",8},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",8},"Graph","Matchstick"]//StyleGraphs

3D All

GraphData[{"Heptahedral",8},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",8},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",8},"Polyhedron"]}]

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",8},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

poly=GraphPolyhedron[GraphData[{"Heptahedral",8}]]

Graphics3D[{FaceForm[Green,Red],poly}]

Graphics3D[poly2=Polyhedron[Normalize/@poly[[1]],poly[[2]]]]

(can=FindCanonicalPolyhedron[poly2,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 9}

GraphData[{"Heptahedral",9},"StandardName"]

Primary

GraphData[{"Heptahedral",9}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",9},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",9},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",9},"EdgeList"]]

Default embedding

GraphPlot[GraphData[{"Heptahedral",9},"Edges"],GraphLayout->"RadialEmbedding"]

RotateGraph[GraphicsToGraph@,Pi/2]

v=Join[Subdivide[{0,0},{1,0},4],{{1,1},{0,1}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[{1,7},1,6,3,7,2],e[4,7,5]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

GraphPlot@RotateGraph[GraphicsToGraph@,Pi/2]

v=Join[CirclePoints[6],{{0,1/2}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[{1,6},1,7,6],e[2,5,7,2],e[4,7,3]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

GraphPlot[GraphData[{"Heptahedral",9},"Edges"],GraphLayout->"SpringEmbedding"]

v={{0,0},{1/2,0},{1,0},{1,1},{1/2,1},{0,1},{1/4,1/2}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[{1,6},1,7,6],e[4,7,3],e[2,5,7,2]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

gs={,};

Degenerate

GraphData[{"Heptahedral",9},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Heptahedral",9},"Graph","Degenerate"]

Bilateral

GraphData[{"Heptahedral",9},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Heptahedral",9},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",9}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",9}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

Planar

GraphData[{"Heptahedral",9},"Planar"]

GraphData[{"Heptahedral",9},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Heptahedral",9},{"RCN","CN"}]

GraphData[{"Heptahedral",9},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"Heptahedral",9}]]]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

RectilinearCrossingCount[g]

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",9}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",9}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{,}

Tutte embedding construction 4

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #1

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{-1/2,1/4},{1/2,1/4},{-1/8,3/4},{1/8,3/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,5,2],e[4,3,5,7,6,4],e[6,3,7]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #2

GraphPlot[RotateGraph[,-2Pi/3]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{-3/8,1/2},{-1/8,1/2},{1/8,1/2},{3/8,1/2}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,5,6,7,2],e[1,6,3,7],e[4,3,5]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

LCF

GraphData[{"Heptahedral",9},"LCFSignature"]

GraphData[{"Heptahedral",9},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",9},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",9}],Debug->True]//Timing

GraphData[{"Heptahedral",9},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",9},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Heptahedral",9},"Edges"]]

3D All

GraphData[{"Heptahedral",9},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",9},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",9},"Polyhedron"]}]

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",9},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"Heptahedral",9}],-1]}]

Graphics3D[poly2=Polyhedron[Normalize/@poly[[1]],poly[[2]]]]

(can=FindCanonicalPolyhedron[poly2,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 10}

GraphData[{"Heptahedral",10},"StandardName"]

Primary

GraphData[{"Heptahedral",10}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",10},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",10},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",10},"EdgeList"]]

Default embedding

GraphPlot@RotateGraph[Graph@GraphData[{"Heptahedral",10},"Edges"],Pi]

v={{0,0},{1,0},{2,0},{2,1},{1,1},{0,1},{1,2}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,7,6,1,5,3],e[6,2,5,7],e[5,4,2]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Degenerate

GraphData[{"Heptahedral",10},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Heptahedral",10},"Graph","Degenerate"]

Bilateral

GraphData[{"Heptahedral",10},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Heptahedral",10},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",10}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",10}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

Planar

GraphData[{"Heptahedral",10},"Planar"]

GraphData[{"Heptahedral",10},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",10}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",10}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

MinimalCrossing

GraphData[{"Heptahedral",10},{"RCN","CN"}]

GraphData[{"Heptahedral",10},"Graph","MinimalCrossing"]//StyleGraphs

Circulant

GraphData[{"Heptahedral",10},"Circulant"]

GraphData[{"Heptahedral",10},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Heptahedral",10},"Halin"]

GraphData[{"Heptahedral",10},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Heptahedral",10},"Rigid"]

GraphData[{"Heptahedral",10},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Heptahedral",10},"Flexible"]

GraphData[{"Heptahedral",10},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Heptahedral",10},"LCF"]

GraphData[{"Heptahedral",10},"HamiltonianCycleCount"]

GraphData[{"Heptahedral",10},"LCFSignature"]

GraphData[{"Heptahedral",10},"LCFNotations"]

GraphData[{"Heptahedral",10},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",10},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",10}],Debug->True]//Timing

GraphData[{"Heptahedral",10},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",10},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"Heptahedral",10},{"RCN","CN"}]

3D default

Graph3D[GraphData[{"Heptahedral",10},"Edges"]]

3D All

GraphData[{"Heptahedral",10},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",10},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",10},"Polyhedron"]}]

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",10},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"Heptahedral",10}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 11}

GraphData[{"Heptahedral",11},"StandardName"]

Primary

GraphData[{"Heptahedral",11}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",11},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",11},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",11},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Heptahedral",11},"Edges"]

v={{0,0},{1,0},{1,1},{1/2,1},{0,1},{1/4,1/2},{3/4,1/2}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,7,6,2,3,4,5,1,6,5],e[6,4,7,3],{2,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Degenerate

GraphData[{"Heptahedral",11},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Heptahedral",11},"Graph","Degenerate"]

Bilateral

GraphData[{"Heptahedral",11},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Heptahedral",11},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",11}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",11}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

Planar

GraphData[{"Heptahedral",11},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",11}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",11}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{,,}

Tutte embedding construction 4

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #1

GraphPlot[RotateGraph[]]

v[[2,2]]

v=Join[UnitCirclePoints[3],CirclePoints[1/(Sqrt[3])/2,3],{{0,0}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,7,6,3],e[4,6,2,4,5,7],{2,5}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #2

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{-3/8,1/2},{-1/8,1/2},{1/8,1/2},{3/8,1/2}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,5,6,7,2],e[7,1,6,3,5],{3,4}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #3

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{-1/4,1/4},{1/4,1/4},{0,3/4},{0,5/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,5,2,6,1,7,6,4],{5,6},{3,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Halin

GraphData[{"Heptahedral",11},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Heptahedral",11},"LCFSignature"]

GraphData[{"Heptahedral",11},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",11},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",11}],Debug->True]//Timing

GraphData[{"Heptahedral",11},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",11},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Heptahedral",11},"Edges"]]

3D All

GraphData[{"Heptahedral",11},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",11},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",11},"Polyhedron"]}]

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",11},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"Heptahedral",11}],1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 12}

GraphData[{"Heptahedral",12},"StandardName"]

Primary

GraphData[{"Heptahedral",12}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",12},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",12},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",12},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Heptahedral",12},"Edges"]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Degenerate

GraphData[{"Heptahedral",12},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Heptahedral",12},"Graph","Degenerate"]

Bilateral

GraphData[{"Heptahedral",12},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Heptahedral",12},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",12}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",12}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

Planar

GraphData[{"Heptahedral",12},"Planar"]

GraphData[{"Heptahedral",12},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",12}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",12}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

MinimalCrossing

GraphData[{"Heptahedral",12},{"RCN","CN"}]

GraphData[{"Heptahedral",12},"Graph","MinimalCrossing"]//StyleGraphs

Circulant

GraphData[{"Heptahedral",12},"Circulant"]

GraphData[{"Heptahedral",12},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Heptahedral",12},"Halin"]

GraphData[{"Heptahedral",12},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Heptahedral",12},"Rigid"]

GraphData[{"Heptahedral",12},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Heptahedral",12},"Flexible"]

GraphData[{"Heptahedral",12},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Heptahedral",12},"LCF"]

GraphData[{"Heptahedral",12},"HamiltonianCycleCount"]

GraphData[{"Heptahedral",12},"LCFSignature"]

GraphData[{"Heptahedral",12},"LCFNotations"]

GraphData[{"Heptahedral",12},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",12},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",12}],Debug->True]//Timing

GraphData[{"Heptahedral",12},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",12},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"Heptahedral",12},{"RCN","CN"}]

GraphData[{"Heptahedral",12},"Graph","MinimalCrossing"]//StyleGraphs

Default embedding

g=Graph@GraphData[{"Heptahedral",12},"Edges"]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"Heptahedral",12}]]]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

RectilinearCrossingCount[g]

3D default

Graph3D[GraphData[{"Heptahedral",12},"Edges"]]

3D All

GraphData[{"Heptahedral",12},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",12},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",12},"Polyhedron"]}]

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",12},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"Heptahedral",12}],1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 13}

GraphData[{"Heptahedral",13},"StandardName"]

Primary

GraphData[{"Heptahedral",13}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",13},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",13},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",13},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Heptahedral",13},"Edges"]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Degenerate

GraphData[{"Heptahedral",13},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Heptahedral",13},"Graph","Degenerate"]

Bilateral

GraphData[{"Heptahedral",13},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Heptahedral",13},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",13}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",13}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

Planar

GraphData[{"Heptahedral",13},"Planar"]

GraphData[{"Heptahedral",13},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",13}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",13}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

MinimalCrossing

GraphData[{"Heptahedral",13},{"RCN","CN"}]

GraphData[{"Heptahedral",13},"Graph","MinimalCrossing"]//StyleGraphs

Circulant

GraphData[{"Heptahedral",13},"Circulant"]

GraphData[{"Heptahedral",13},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Heptahedral",13},"Halin"]

GraphData[{"Heptahedral",13},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Heptahedral",13},"Rigid"]

GraphData[{"Heptahedral",13},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Heptahedral",13},"Flexible"]

GraphData[{"Heptahedral",13},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Heptahedral",13},"LCFSignature"]

GraphData[{"Heptahedral",13},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",13},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",13}],Debug->True]//Timing

GraphData[{"Heptahedral",13},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",13},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"Heptahedral",13},{"RCN","CN"}]

GraphData[{"Heptahedral",13},"Graph","MinimalCrossing"]//StyleGraphs

Default embedding

g=Graph@GraphData[{"Heptahedral",13},"Edges"]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"Heptahedral",13}]]]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

RectilinearCrossingCount[g]

3D default

Graph3D[GraphData[{"Heptahedral",13},"Edges"]]

3D All

GraphData[{"Heptahedral",13},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",13},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",13},"Polyhedron"]}]

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",13},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"Heptahedral",13}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 14} == {"Fan", {2, 5}}

GraphData[{"Heptahedral",14},"StandardName"]

{"Heptahedral", 15} == {"KTree", {3, {7, 3}}}

Names

GraphData[{"Heptahedral",15},"StandardName"]

GraphData[{"Heptahedral",15},"StandardNames"]

{"Heptahedral", 16}

Names

GraphData[{"Heptahedral",16},"StandardName"]

GraphData[{"Heptahedral",16},"StandardNames"]

Primary

GraphData[{"Heptahedral",16}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",16},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",16},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",16},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Heptahedral",16},"Edges"]

RegionIntersection[Line[v[[{1,6}]]],Line[v[[{3,5}]]]]

s=Sqrt[3]/2;
v=RotationMatrix[2Pi/3].#&/@{{-1,0},{0,0},{1,0},{0,(1/(Sqrt[3]))},{-1/2,s},{1/2,s},{0,2s}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,6,7,5,1,4,6],e[3,4,2],e[6,5,2,6],{4,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

GraphSymmetryGroup@g

Degenerate

GraphData[{"Heptahedral",16},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Heptahedral",16},"Graph","Degenerate"]

Bilateral

GraphData[{"Heptahedral",16},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Heptahedral",16},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",16}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",16}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

Planar

GraphData[{"Heptahedral",16},"Planar"]

GraphData[{"Heptahedral",16},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",16}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",16}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{,,}

RecognizeGraph/@gs

Tutte embedding construction 4

GraphPlot[RotateGraph[,-3Pi/4]]

v=Join[Subdivide[{-1,0},{1,0},3],{{0,-1},{0,1},{0,1/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,5,4,6,1,2,3,4],e[5,2,6,3,5],e[2,7,3],{6,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #1

GraphPlot[RotateGraph[,-2Pi/3]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{0,1/4}},Subdivide[{-1/4,3/4},{1/4,3/4},2]];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,2,6,1,5,6,7,2],e[5,3,7],{4,6}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #2

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #3

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #4

GraphPlot[RotateGraph[,2Pi/3]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]}},Subdivide[{-1/2,1/4},{1/2,1/4},2],{{0,1}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,5,6,2,5,1,7,2],e[4,7,6],{3,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #5

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

MinimalCrossing

GraphData[{"Heptahedral",16},{"RCN","CN"}]

GraphData[{"Heptahedral",16},"Graph","MinimalCrossing"]//StyleGraphs

Circulant

GraphData[{"Heptahedral",16},"Circulant"]

GraphData[{"Heptahedral",16},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Heptahedral",16},"Halin"]

GraphData[{"Heptahedral",16},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Heptahedral",16},"Rigid"]

GraphData[{"Heptahedral",16},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Heptahedral",16},"Flexible"]

GraphData[{"Heptahedral",16},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Heptahedral",16},"LCF"]

GraphData[{"Heptahedral",16},"HamiltonianCycleCount"]

GraphData[{"Heptahedral",16},"LCFSignature"]

GraphData[{"Heptahedral",16},"LCFNotations"]

GraphData[{"Heptahedral",16},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",16},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",16}],Debug->True]//Timing

GraphData[{"Heptahedral",16},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",16},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Heptahedral",16},"Edges"]]

3D All

GraphData[{"Heptahedral",16},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",16},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",16},"Polyhedron"]}]

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",16},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"Heptahedral",16}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 17} == {"Apollonian", 2}

GraphData[{"Heptahedral",17},"StandardName"]

{"Heptahedral", 18}

GraphData[{"Heptahedral",18},"StandardName"]

Primary

GraphData[{"Heptahedral",18}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",18},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",18},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",18},"EdgeList"]]

Default embedding

GraphPlot@RotateGraph[RotateGraph[Graph@GraphData[{"Heptahedral",18},"Edges"],{1,2}],Pi]

v={{0,0},{1,0},{2,0},{2,1},{1,1},{0,1},{1,2}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,7,6,1,5,3],e[7,5,6,2,4]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Degenerate

GraphData[{"Heptahedral",18},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Heptahedral",18},"Graph","Degenerate"]

Bilateral

GraphData[{"Heptahedral",18},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Heptahedral",18},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",18}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",18}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

Planar

GraphData[{"Heptahedral",18},"Planar"]

GraphData[{"Heptahedral",18},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",18}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",18}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

MinimalCrossing

GraphData[{"Heptahedral",18},{"RCN","CN"}]

GraphData[{"Heptahedral",18},"Graph","MinimalCrossing"]//StyleGraphs

Circulant

GraphData[{"Heptahedral",18},"Circulant"]

GraphData[{"Heptahedral",18},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Heptahedral",18},"Halin"]

GraphData[{"Heptahedral",18},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Heptahedral",18},"Rigid"]

GraphData[{"Heptahedral",18},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Heptahedral",18},"Flexible"]

GraphData[{"Heptahedral",18},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Heptahedral",18},"LCF"]

GraphData[{"Heptahedral",18},"HamiltonianCycleCount"]

GraphData[{"Heptahedral",18},"LCFSignature"]

GraphData[{"Heptahedral",18},"LCFNotations"]

GraphData[{"Heptahedral",18},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",18},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",18}],Debug->True]//Timing

GraphData[{"Heptahedral",18},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Heptahedral",18},"VertexList"],GraphData[{"Heptahedral",18},"EdgeList"]],MaxIterations->500]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"Heptahedral",18},"Graph",#]&/@{"All","UnitDistance"})

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"Heptahedral",18}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"Heptahedral",18},"Matchstick"]

GraphData[{"Heptahedral",18},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Heptahedral",18},"Edges"]]

3D All

GraphData[{"Heptahedral",18},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Heptahedral",18},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Heptahedral",18},"Polyhedral"]

GraphData[{"Heptahedral",18},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",18},"Polyhedron"]}]

3D Canonical

GraphData[{"Heptahedral",18},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",18},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"Heptahedral",18}],1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->50000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 19} == {"SelfDual", {7, 6}}

GraphData[{"Heptahedral",19},"StandardName"]

{"Heptahedral", 20}

GraphData[{"Heptahedral",20},"StandardName"]

Primary

GraphData[{"Heptahedral",20}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",20},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",20},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",20},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Heptahedral",20},"Edges"]

GraphPlot[GraphData[{"Heptahedral",20},"Edges"],GraphLayout->"HighDimensionalEmbedding"]

GraphPlot@GraphData[{"Heptahedral",20},"Edges"]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Degenerate

GraphData[{"Heptahedral",20},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Heptahedral",20},"Graph","Degenerate"]

Bilateral

GraphData[{"Heptahedral",20},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Heptahedral",20},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",20}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",20}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

Planar

GraphData[{"Heptahedral",20},"Planar"]

GraphData[{"Heptahedral",20},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",20}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",20}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{,}

RecognizeGraph/@gs

Tutte embedding construction 4

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #1

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{0,1/4}},Subdivide[{-1/4,3/4},{1/4,3/4},2]];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,2,7,3,5,1],e[3,6,4],e[5,6,7]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #2

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #4

GraphPlot[RotateGraph[,2Pi/3]]

e[l__]:=Sequence@@Partition[{l},2,1]
v={{-1/2,0},{1/2,0},{-1/4,1/4},{1/4,1/4},{0,1/4},{0,1/2},{0,Sqrt[3]/2}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,7,1,5,2,4,5,3,1],e[3,6,4],e[7,6,5]},VertexCoordinates->v,VertexLabels->Automatic]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

MinimalCrossing

GraphData[{"Heptahedral",20},{"RCN","CN"}]

GraphData[{"Heptahedral",20},"Graph","MinimalCrossing"]//StyleGraphs

Circulant

GraphData[{"Heptahedral",20},"Circulant"]

GraphData[{"Heptahedral",20},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Heptahedral",20},"Halin"]

GraphData[{"Heptahedral",20},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Heptahedral",20},"Rigid"]

GraphData[{"Heptahedral",20},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Heptahedral",20},"Flexible"]

GraphData[{"Heptahedral",20},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Heptahedral",20},"LCF"]

GraphData[{"Heptahedral",20},"HamiltonianCycleCount"]

GraphData[{"Heptahedral",20},"LCFSignature"]

GraphData[{"Heptahedral",20},"LCFNotations"]

GraphData[{"Heptahedral",20},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",20},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",20}],Debug->True]//Timing

GraphData[{"Heptahedral",20},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",20},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Heptahedral",20},"Edges"]]

3D All

GraphData[{"Heptahedral",20},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",20},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",20},"Polyhedron"]}]

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",20},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"Heptahedral",20}],1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 21}

GraphData[{"Heptahedral",21},"StandardName"]

Primary

GraphData[{"Heptahedral",21}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",21},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",21},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",21},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Heptahedral",21},"Edges"]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

g=GraphPlot@GraphData[{"Heptahedral",21},"Edges"]

v={{0,0},{1,0},{1,1},{1/2,1},{0,1},{1/3,1/2},{2/3,1/2}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,5,1,6,7,2],e[5,6,4,7,3]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Degenerate

GraphData[{"Heptahedral",21},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Heptahedral",21},"Graph","Degenerate"]

Bilateral

GraphData[{"Heptahedral",21},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Heptahedral",21},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",21}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",21}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

gs=RotateGraph@@@Transpose[{{,,},{Pi,Pi,0}}]

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

Planar

GraphData[{"Heptahedral",21},"Planar"]

GraphData[{"Heptahedral",21},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",21}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",21}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{,,,,,}

Tutte embedding construction 5

GraphPlot[RotateGraph[,-4Pi/5]]

RegionIntersection[Line[v[[{2,4}]]],Line[v[[{1,3}]]]]//FullSimplify

v=Join[UnitCirclePoints[5],{{(3/4)-((Sqrt[5])/4),(NumericalApproximation[Root, (RowDefault["0.263", FEExpressionsNumericalApproximationElider]), Root[1-20 ((#1)^2)+80 ((#1)^4)&,3], ])},{((-3)/4)+((Sqrt[5])/4),(NumericalApproximation[Root, (RowDefault["0.263", FEExpressionsNumericalApproximationElider]), Root[1-20 ((#1)^2)+80 ((#1)^4)&,3], ])}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,5,1,6,3,7,5],e[4,7,6,2]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 4

GraphPlot[RotateGraph[]]

v=Join[{{0,0},{1,0},{1,1},{0,1},{1/4,1/2},{1/2,1/2},{3/4,1/2}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,1,5,6,7,2,6,1],{4,5},{3,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #1

GraphPlot[RotateGraph[,-2Pi/3]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{-1/4,1/4},{1/4,1/4},{-1/4,3/4},{1/4,3/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[6,1,2,3,1,4,5,2,7,3,6,4],{5,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #2

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{0,1/4},{0,1/2},{-1/4,3/4},{1/4,3/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,2,7,3,6,7,5,6],{4,5}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #3

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{0,1/4},{-1/4,1/2},{1/4,1/2},{0,3/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,6,7,5,4],e[5,6,2,7,3]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

LCF

GraphData[{"Heptahedral",21},"LCFSignature"]

GraphData[{"Heptahedral",21},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",21},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",21}],Debug->True]//Timing

GraphData[{"Heptahedral",21},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",21},"Graph","Matchstick"]//StyleGraphs

3D All

GraphData[{"Heptahedral",21},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",21},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",21},"Polyhedron"]}]

3D Polyhedron Canonical

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",21},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

poly=GraphPolyhedron[GraphData[{"Heptahedral",21}]]

Graphics3D[{FaceForm[Green,Red],poly}]

Graphics3D[poly2=Polyhedron[Normalize/@poly[[1]],poly[[2]]]]

(can=FindCanonicalPolyhedron[poly2,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 22}

GraphData[{"Heptahedral",22},"StandardName"]

Primary

GraphData[{"Heptahedral",22}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",22},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",22},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",22},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Heptahedral",22},"Edges"]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Default embedding

GraphPlot@GraphData[{"Heptahedral",22},"Edges"]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Bilateral

GraphData[{"Heptahedral",22},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Heptahedral",22},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",22}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",22}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

Planar

GraphData[{"Heptahedral",22},"Planar"]

GraphData[{"Heptahedral",22},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",22}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",22}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{,,,}

Tutte embedding construction 5

GraphPlot[RotateGraph[,-2Pi/5]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 4 #1

GraphPlot[RotateGraph[]]

v=Join[UnitCirclePoints[3],CirclePoints[1/4,3]];
AppendTo[v,Mean[v[[{4,6}]]]];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,2,6,3],e[6,5,4,7,6],e[7,5,2]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 4 #2

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{0,1/4},{-1/4,1/2},{0,1/2},{1/4,1/2}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,5,1],e[5,3,7,6,5],{2,7},e[4,6,3]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 4 #3

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{-1/4,1/4},{1/4,1/4},{-1/4,3/4},{1/4,3/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[6,1,2,3,1,4,5,2,7,3,6,4],e[1,5,7]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 4 #4

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{-1/4,1/4},{1/4,1/4},{-1/4,3/4},{1/4,3/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,5,7,6,5,2,7,3],{4,6},{1,5}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Halin

GraphData[{"Heptahedral",22},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Heptahedral",22},"LCFSignature"]

GraphData[{"Heptahedral",22},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",22},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",22}],Debug->True]//Timing

GraphData[{"Heptahedral",22},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",22},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Heptahedral",22},"Edges"]]

3D All

GraphData[{"Heptahedral",22},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",22},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",22},"Polyhedron"]}]

3D Polyhedron Canonical

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",22},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"Heptahedral",22}],1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 23}

GraphData[{"Heptahedral",23},"StandardName"]

Primary

GraphData[{"Heptahedral",23}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",23},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",23},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",23},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Heptahedral",23},"Edges"]

v={{0,0},{1,0},{2,0},{2,1},{1,1},{0,1},{3/2,1/2}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,5,6,1,5,2,7,4],e[3,7,5],{1,7},{2,6}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Degenerate

GraphData[{"Heptahedral",23},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Heptahedral",23},"Graph","Degenerate"]

Bilateral

GraphData[{"Heptahedral",23},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Heptahedral",23},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",23}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",23}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

Planar

GraphData[{"Heptahedral",23},"Planar"]

GraphData[{"Heptahedral",23},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",23}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",23}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{,}

RecognizeGraph/@gs

Tutte embedding construction 4

GraphPlot[RotateGraph[,Pi]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #1

GraphPlot[RotateGraph[,2Pi/3]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{-1/4,1/4},{1/4,1/4},{0,3/4},{0,5/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,5,2,6,1,7,2],e[3,7,6,4],{5,6}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #2

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #3

GraphPlot[RotateGraph[,-2Pi/3]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{-1/2,1/4},{1/2,1/4},{0,3/4},{0,5/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,5,2],e[4,3,5,6,4],e[6,7,3],e[4,7,5]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #4

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #5

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

MinimalCrossing

GraphData[{"Heptahedral",23},{"RCN","CN"}]

GraphData[{"Heptahedral",23},"Graph","MinimalCrossing"]//StyleGraphs

Circulant

GraphData[{"Heptahedral",23},"Circulant"]

GraphData[{"Heptahedral",23},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Heptahedral",23},"Halin"]

GraphData[{"Heptahedral",23},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Heptahedral",23},"Rigid"]

GraphData[{"Heptahedral",23},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Heptahedral",23},"Flexible"]

GraphData[{"Heptahedral",23},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Heptahedral",23},"LCF"]

GraphData[{"Heptahedral",23},"HamiltonianCycleCount"]

GraphData[{"Heptahedral",23},"LCFSignature"]

GraphData[{"Heptahedral",23},"LCFNotations"]

GraphData[{"Heptahedral",23},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",23},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",23}],Debug->True]//Timing

GraphData[{"Heptahedral",23},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",23},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Heptahedral",23},"Edges"]]

3D All

GraphData[{"Heptahedral",23},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",23},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",23},"Polyhedron"]}]

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",23},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"Heptahedral",23}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 24} == {"JohnsonSkeleton", 7}

GraphData[{"Heptahedral",24},"StandardName"]

{"Heptahedral", 25}

GraphData[{"Heptahedral",25},"StandardName"]

Primary

GraphData[{"Heptahedral",25}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",25},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",25},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",25},"EdgeList"]]

Default embedding

g=GraphPlot@GraphData[{"Heptahedral",25},"Edges"]

v={{0,0},{1,0},{1,1},{1/2,1},{0,1},{1/3,1/2},{2/3,1/2}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,7,2,3,4,5,1,6,4,7,3],e[5,6,2]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Planar

GraphData[{"Heptahedral",25},"Planar"]

GraphData[{"Heptahedral",25},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",25}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",25}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{,,}

Tutte embedding construction 4 #1

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 4 #2

GraphPlot[RotateGraph[]]

v={{0,0},{1,0},{1,1},{0,1},{1/2,1/4},{1/2,1/2},{1/2,3/4}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,1,5,2,6],e[4,7,3],e[1,7,6,5]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #1

GraphPlot[RotateGraph[]]

v={{-1,0},{1,0},{0,Sqrt[3]},{-1/4,1/4},{1/4,1/4},{-1/4,3/4},{1/4,3/4}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,6,3,7,5,2,4],e[5,6,7]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

Tutte embedding construction 3 #2

GraphPlot[RotateGraph[]]

v=Join[UnitCirclePoints[3],CirclePoints[1/(Sqrt[3])/2,3],{{0,0}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[3,1,2,3,6,7,5,6,4],e[2,5,1,4,7]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

LCF

GraphData[{"Heptahedral",25},"LCFSignature"]

GraphData[{"Heptahedral",25},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",25},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",25}],Debug->True]//Timing

GraphData[{"Heptahedral",25},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",25},"Graph","Matchstick"]//StyleGraphs

3D All

GraphData[{"Heptahedral",25},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",25},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",25},"Polyhedron"]}]

3D Polyhedron Canonical

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",25},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

poly=GraphPolyhedron[GraphData[{"Heptahedral",25}]]

Graphics3D[{FaceForm[Green,Red],poly}]

Graphics3D[poly2=Polyhedron[Normalize/@poly[[1]],poly[[2]]]]

(can=FindCanonicalPolyhedron[poly2,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 26}

GraphData[{"Heptahedral",26},"StandardName"]

Primary

GraphData[{"Heptahedral",26}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",26},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",26},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",26},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Heptahedral",26},"Edges"]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Default embedding

GraphPlot@GraphData[{"Heptahedral",26},"Edges"]

e[l__]:=Sequence@@Partition[{l},2,1];
v={{0,0},{1,0},{3/2,1/2},{1,1},{0,1},{-1/2,1/2},{1/2,1/2}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,5,6,1,7,4,2],e[3,7,5,1],{6,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Bilateral

GraphData[{"Heptahedral",26},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Heptahedral",26},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",26}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",26}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

Planar

GraphData[{"Heptahedral",26},"Planar"]

GraphData[{"Heptahedral",26},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",26}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",26}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

MinimalCrossing

GraphData[{"Heptahedral",26},{"RCN","CN"}]

GraphData[{"Heptahedral",26},"Graph","MinimalCrossing"]//StyleGraphs

Circulant

GraphData[{"Heptahedral",26},"Circulant"]

GraphData[{"Heptahedral",26},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Heptahedral",26},"Halin"]

GraphData[{"Heptahedral",26},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Heptahedral",26},"Rigid"]

GraphData[{"Heptahedral",26},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Heptahedral",26},"Flexible"]

GraphData[{"Heptahedral",26},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Heptahedral",26},"LCF"]

GraphData[{"Heptahedral",26},"HamiltonianCycleCount"]

GraphData[{"Heptahedral",26},"LCFSignature"]

GraphData[{"Heptahedral",26},"LCFNotations"]

GraphData[{"Heptahedral",26},"Graph","LCF"]//StyleGraphs

Tally[LCFNotation[#][[2]]&/@%]

UnitDistance

GraphData[{"Heptahedral",26},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",26}],Debug->True]//Timing

GraphData[{"Heptahedral",26},"Graph","UnitDistance"]//StyleGraphs

Select[%,!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&]

Matchstick

GraphData[{"Heptahedral",26},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Heptahedral",26},"Edges"]]

3D All

GraphData[{"Heptahedral",26},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",26},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",26},"Polyhedron"]}]

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",26},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"Heptahedral",26}],1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 27}

Names

GraphData[{"Heptahedral",27},"StandardName"]

GraphData[{"Heptahedral",27},"StandardNames"]

Primary

GraphData[{"Heptahedral",27}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",27},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",27},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",27},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Heptahedral",27},"Edges"]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Default embedding

GraphPlot@GraphData[{"Heptahedral",27},"Edges"]

v={{0,0},{1,0},{1,1},{0,1},{1/2,1/2},{3/2,1/2},{-1/2,1/2}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,6,3,4,7,1,5,3,2,5,4,1],e[7,5,6]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Bilateral

GraphData[{"Heptahedral",27},"Graph","Bilateral"]//StyleGraphs

Grid[DeleteCases[Monitor[{g=#,BilateralGraphEmbeddingTypes[#],GraphSymmetryGroup[#]}&/@GraphData[{"Heptahedral",27},"Graph","All"],g],{_,_,TransformationGroup[{}]}],Dividers->All,Alignment->{{Center,{Left}}}]

Circular

GraphData[{"Heptahedral",27},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",27}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",27}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

gs={RotateGraph[,Pi],}

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"Heptahedral",27},"Planar"]

GraphData[{"Heptahedral",27},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",27}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",27}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{,,,}

Tutte embedding construction 4

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #1

GraphPlot[RotateGraph[]]

v=Join[UnitCirclePoints[3],CirclePoints[1/Sqrt[3]/2,3],{{0,0}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,7,6,3,5,1],e[2,5,7],e[6,4,5,6]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #2

GraphPlot[RotateGraph[,-2Pi/3]]

v={{-1,0},{1,0},{0,Sqrt[3]},{-3/8,1/2},{-1/8,1/2},{1/8,1/2},{3/8,1/2}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,5,6,7,2,6,3,5,1],e[4,3,7]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #3

GraphPlot[RotateGraph[]]

v={{-1,0},{1,0},{0,Sqrt[3]},{-1/4,1/2},{0,1/2},{1/4,1/2},{1/8,3/4}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,5,6,2,4,3,7,6,3,5,7]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Halin

GraphData[{"Heptahedral",27},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Heptahedral",27},"LCFSignature"]

GraphData[{"Heptahedral",27},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",27},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",27}],Debug->True]//Timing

GraphData[{"Heptahedral",27},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",27},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Heptahedral",27},"Edges"]]

3D All

GraphData[{"Heptahedral",27},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",27},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",27},"Polyhedron"]}]

3D Canonical Polyhedron

GraphData[{"Heptahedral",27},"Graph",{"3D","Polyhedron"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",27},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"Heptahedral",27}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 28}

GraphData[{"Heptahedral",28},"StandardName"]

Primary

GraphData[{"Heptahedral",28}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",28},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",28},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",28},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Heptahedral",28},"Edges"]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Degenerate

GraphData[{"Heptahedral",28},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Heptahedral",28},"Graph","Degenerate"]

Bilateral

GraphData[{"Heptahedral",28},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Heptahedral",28},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",28}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",28}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

Planar

GraphData[{"Heptahedral",28},"Planar"]

GraphData[{"Heptahedral",28},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",28}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",28}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

MinimalCrossing

GraphData[{"Heptahedral",28},{"RCN","CN"}]

GraphData[{"Heptahedral",28},"Graph","MinimalCrossing"]//StyleGraphs

Circulant

GraphData[{"Heptahedral",28},"Circulant"]

GraphData[{"Heptahedral",28},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Heptahedral",28},"Halin"]

GraphData[{"Heptahedral",28},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Heptahedral",28},"Rigid"]

GraphData[{"Heptahedral",28},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Heptahedral",28},"Flexible"]

GraphData[{"Heptahedral",28},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Heptahedral",28},"LCF"]

GraphData[{"Heptahedral",28},"HamiltonianCycleCount"]

GraphData[{"Heptahedral",28},"LCFSignature"]

GraphData[{"Heptahedral",28},"LCFNotations"]

GraphData[{"Heptahedral",28},"Graph","LCF"]//StyleGraphs

Tally[LCFNotation[#][[2]]&/@%]

UnitDistance

GraphData[{"Heptahedral",28},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",28}],Debug->True]//Timing

GraphData[{"Heptahedral",28},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",28},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Heptahedral",28},"Edges"]]

3D All

GraphData[{"Heptahedral",28},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",28},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",28},"Polyhedron"]}]

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",28},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"Heptahedral",28}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 29} == {"KTree", {3, {7, 5}}}

Names

GraphData[{"Heptahedral",29},"StandardName"]

GraphData[{"Heptahedral",29},"StandardNames"]

{"Heptahedral", 30}

GraphData[{"Heptahedral",30},"StandardName"]

Primary

GraphData[{"Heptahedral",30}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",30},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",30},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",30},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Heptahedral",30},"Edges"]

e[l__]:=Sequence@@Partition[{l},2,1]
v={{0,0},{1,0},{1,1},{0,1},{3/2,1},{1/2,1+Sqrt[3]/2},{-1/2,1}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,5,6,7,1,4,2,3,1],e[7,4,6,3,5]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Degenerate

GraphData[{"Heptahedral",30},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Heptahedral",30},"Graph","Degenerate"]

Bilateral

GraphData[{"Heptahedral",30},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Heptahedral",30},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",30}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",30}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

gs=RotateGraph@@@Transpose[{bilat,{Pi,Pi,0}}]

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

Planar

GraphData[{"Heptahedral",30},"Planar"]

GraphData[{"Heptahedral",30},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",30}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",30}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{,,}

Tutte embedding construction 4

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #1

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{-1/4,1/4},{1/4,1/4},{-1/4,3/4},{1/4,3/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,5,2,4],e[1,6,3,7,6,5,7]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #2

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{-1/4,1/4},{1/4,1/4},{-1/4,3/4},{1/4,3/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,5,7,6,5],e[4,6,3,7,2,4]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #3

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{-1/4,1/4},{1/4,1/4},{-1/4,3/4},{1/4,3/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,5,7,6,1],e[4,6,5],e[5,2,7,3]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Halin

GraphData[{"Heptahedral",30},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Heptahedral",30},"LCFSignature"]

GraphData[{"Heptahedral",30},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",30},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",30}],Debug->True]//Timing

GraphData[{"Heptahedral",30},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",30},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Heptahedral",30},"Edges"]]

3D All

GraphData[{"Heptahedral",30},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",30},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",30},"Polyhedron"]}]

3D Polyhedron Canonical

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",30},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"Heptahedral",30}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 31}

GraphData[{"Heptahedral",31},"StandardName"]

Primary

GraphData[{"Heptahedral",31}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",31},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",31},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",31},"EdgeList"]]

Default embedding

GraphPlot@RotateGraph[Graph@GraphData[{"Heptahedral",31},"Edges"],Pi/2]

e[l__]:=Sequence@@Partition[{l},2,1]
v={{0,0},{1,0},{1,1},{1/2,1},{0,1},{1/2,1/2},{1/2,1+Sqrt[3]/2}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,7,5,1,4,2,6,1],e[5,4,3,6,5],{4,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

GraphPlot@RotateGraph[Graph@GraphData[{"Heptahedral",31},"Edges"],Pi/2]

v[[4,2]]//FullSimplify

Mean[{v[[5,2]],v[[4,2]]}]//FullSimplify

v=Join[UnitCirclePoints[5],{{0,(NumericalApproximation[Root, (RowDefault["0.263", FEExpressionsNumericalApproximationElider]), Root[1-20 ((#1)^2)+80 ((#1)^4)&,3], ])},{0,-(1/4) (Sqrt[(1/10) (5+(Sqrt[5]))])}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,5,1,7,5,6,1],e[4,7,2,6,4],{3,6}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Degenerate

GraphData[{"Heptahedral",31},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Heptahedral",31},"Graph","Degenerate"]

Bilateral

GraphData[{"Heptahedral",31},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Heptahedral",31},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",31}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",31}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

Planar

GraphData[{"Heptahedral",31},"Planar"]

GraphData[{"Heptahedral",31},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",31}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",31}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{,,}

RecognizeGraph/@gs

Tutte embedding construction 4

GraphPlot[RotateGraph[,Pi/4]]

v=Join[{{-1,0},{0,-1},{1,0},{0,1},{0,0},{-1/4,1/2},{1/4,1/2}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,1,5,3,7,6,1],e[5,6,4,7,5,2]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #1

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #2

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #3

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{0,1/4}},Subdivide[{-1/4,3/4},{1/4,3/4},2]];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,2,7,6,5,1],e[4,7,3,5,4,6]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #4

GraphPlot[RotateGraph[,-2Pi/3]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{0,1/4}},Subdivide[{-1/4,3/4},{1/4,3/4},2]];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,2,7,6,5,1],e[6,3,7,4,5,3]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #5

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

MinimalCrossing

GraphData[{"Heptahedral",31},{"RCN","CN"}]

GraphData[{"Heptahedral",31},"Graph","MinimalCrossing"]//StyleGraphs

Circulant

GraphData[{"Heptahedral",31},"Circulant"]

GraphData[{"Heptahedral",31},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Heptahedral",31},"Halin"]

GraphData[{"Heptahedral",31},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Heptahedral",31},"Rigid"]

GraphData[{"Heptahedral",31},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Heptahedral",31},"Flexible"]

GraphData[{"Heptahedral",31},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Heptahedral",31},"LCF"]

GraphData[{"Heptahedral",31},"HamiltonianCycleCount"]

GraphData[{"Heptahedral",31},"LCFSignature"]

GraphData[{"Heptahedral",31},"LCFNotations"]

GraphData[{"Heptahedral",31},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",31},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",31}],Debug->True]//Timing

GraphData[{"Heptahedral",31},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",31},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"Heptahedral",31},{"RCN","CN"}]

GraphData[{"Heptahedral",31},"Graph","MinimalCrossing"]//StyleGraphs

3D default

Graph3D[GraphData[{"Heptahedral",31},"Edges"]]

3D All

GraphData[{"Heptahedral",31},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",31},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",31},"Polyhedron"]}]

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",31},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"Heptahedral",31}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"Heptahedral", 32} == {"Dipyramid", 5}

GraphData[{"Heptahedral",32},"StandardName"]

{"Heptahedral", 33} == {"JohnsonSkeleton", 49}

GraphData[{"Heptahedral",33},"StandardName"]

{"Heptahedral", 34}

GraphData[{"Heptahedral",34},"StandardName"]

Primary

GraphData[{"Heptahedral",34}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Heptahedral",34},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Heptahedral",34},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Heptahedral",34},"EdgeList"]]

Default embedding

GraphPlot@RotateGraph[Graph@GraphData[{"Heptahedral",34},"Edges"],-Pi/2]

e[l__]:=Sequence@@Partition[{l},2,1]
v={{0,0},{1,0},{1,1},{0,1},{1/2,1/3},{1/2,2/3},{1/2,4/3}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,7,4,1,5,2,6,1],e[3,4,6,3,5,4],{6,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

GraphPlot@RotateGraph[Graph@GraphData[{"Heptahedral",34},"Edges"],-Pi/2]

v=Join[CirclePoints[{1,Pi/2},6],{{0,0}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[{1,6},1,7,3,5,7,2,6,7],e[2,4,6]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Degenerate

GraphData[{"Heptahedral",34},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Heptahedral",34},"Graph","Degenerate"]

Bilateral

GraphData[{"Heptahedral",34},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Heptahedral",34},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Heptahedral",34}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Heptahedral",34}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

Planar

GraphData[{"Heptahedral",34},"Planar"]

GraphData[{"Heptahedral",34},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"Heptahedral",34}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"Heptahedral",34}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{,,,}

Tutte embedding construction 3 #1

GraphPlot[RotateGraph[]]

v=Join[UnitCirclePoints[3],CirclePoints[{1/6,-Pi/2},3],{{0,0}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,5,2,6,3,4,1],e[4,5,6,4,7,5],{6,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #2

GraphPlot[RotateGraph[]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{0,1/4},{-1/4,3/4},{1/4,3/4},{0,5/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,2,7,1],e[1,5,6,2],e[4,5,7,6,4],{3,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #3

GraphPlot[RotateGraph[,-2Pi/3]]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]},{0,1/4},{0,1/2},{-1/4,1},{1/4,1}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,2,7,3,6,1,5,2],e[5,6,7,5,4]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 3 #4

GraphPlot[RotateGraph[]]

v=Join[];
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Halin

GraphData[{"Heptahedral",34},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Heptahedral",34},"LCFSignature"]

GraphData[{"Heptahedral",34},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"Heptahedral",34},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Heptahedral",34}],Debug->True]//Timing

GraphData[{"Heptahedral",34},"Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData[{"Heptahedral",34},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Heptahedral",34},"Edges"]]

3D All

GraphData[{"Heptahedral",34},"Graph",{"3D","All"}]

3D Polyhedron

GraphData[{"Heptahedral",34},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"Heptahedral",34},"Polyhedron"]}]

3D Polyhedron Canonical

Graphics3D[{Opacity[.5],Red,GraphData[{"Heptahedral",34},"Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"Heptahedral",34}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

GraphData

file=OpenWrite["~/hep-duals.m"]

WriteString[file,GraphDataString[
DualGraph[GraphData[#]],
"StandardName"->If[#==={"JohnsonSkeleton",49},"AugmentedTriangularPrismDualGraph",{"HeptahedralDual",#[[2]]}],
"Name"->If[#==={"JohnsonSkeleton",49},"augmented triangular prism dual graph","heptahedral graph "<>ToString[#[[2]]]<>" dual"],
"Embeddings"->None
]]&/@{{"Heptahedral",5},{"Heptahedral",20},{"Heptahedral",22},{"Heptahedral",26},{"Heptahedral",30},{"JohnsonSkeleton",49}}

Close[file]