# Map of all graphs obtainable with GraphData?

I've been trying to put together an answer to another question, but I am stuck, so I decided to post this question instead.

Mathematica contains (among its curated data) information on definition, embeddings, and many properties of around 7500 graphs. This is really a wealth of data, however, there are some problems that came with sheer size of information:

• It is difficult to provide the user means for, let's say, selecting a graph, or selecting a group of graph with desired features.
• It is difficult to know what really is in the database. For example, how many graphs are planar? How many are 3-chromatic?

To address this issue, my idea is as follows:

Create a rectangular map of graphs (that somewhat resembles "heatmaps"), where each graph is assigned a small cell (4x4, 5x5, or so pixels). The whole map should fit in a reasonable small portion of a computer screen. Each cell is colored by a property (user chooses which property) of each graph. (let's say the property could be number of vertices) Than user hovers mouse pointer over the map, and gets more info on a particular graph, in this case Coxeter graph: (only default embedding is displayed in the picture, but there could be many other details there) ## How should be the map colored?

For detailed info on GraphData[], of course see GraphData[] documentation. Some ideas on candidates for map coloring:

Boolean properties:

"Connected" connected
"Disconnected"  disconnected
"Planar"    planar


Numerical properties: (mostly integer numbers, but some could be non-integers, like Harary index)

"VertexCount"           total number of vertices
"EdgeCount"             total number of edges
"FaceCount"             total number of faces (for a planar graph)

"VertexConnectivity"        minimum vertex deletions to disconnect the graph
"EdgeConnectivity"          minimum edge deletions to disconnect the graph
"ConnectedComponentCount"   number of connected components

"ChromaticNumber"               chromatic number
"EdgeChromaticNumber"           edge chromatic number
"FractionalChromaticNumber"     fractional chromatic number
"FractionalEdgeChromaticNumber" fractional edge chromatic number

"BalabanIndex"      Balaban index
"CyclomaticNumber"  minimum number of edges to remove to turn acyclic
"DetourIndex"       detour index
"HararyIndex"       Harary index
"HosoyaIndex"       Hosoya index
"KirchhoffIndex"    Kirchhoff index
"KirchhoffSumIndex" Kirchhoff sum index
"StabilityIndex"    stability index


## Note

Some other MSE questions and answers involving heatmaps:

here, here, here.

Sorry I can't include my code. But anyway it is not worth publishing, trust me.

## Related visualization concepts

Data points triangle: Parliament charts convey similar visualization concept: Treemaps use (on top of color) also size of rectangle as a visual code: ## Question

Is this idea feasible at all? Or good? Please feel free to adjust it, if you maybe have a better solution for the same problem.

## 1 Answer

I am not sure if this will completely answer your question.

I would suggest plotting scatterplot of all available graphs, with conveniently chosen x and y axes, and tooltips.

Like this:

ListPlot[Tooltip[GraphData[#, {"VertexCount", "EdgeCount"}],
GraphData[#, "StandardName"]] & /@ GraphData[]] ListPlot[Tooltip[GraphData[#, {"VertexCount", "ChromaticNumber"}],
GraphData[#, "StandardName"]] & /@ GraphData[]] ListPlot[Tooltip[GraphData[#, {"VertexCount", "StabilityIndex"}],
GraphData[#, "StandardName"]] & /@ GraphData[]] ListPlot[Tooltip[GraphData[#, {"VertexCount", "HararyIndex"}],
GraphData[#, "StandardName"]] & /@ GraphData[]] ListPlot[Tooltip[GraphData[#, {"VertexCount", "MeanDistance"}],
GraphData[#, "StandardName"]] & /@ GraphData[]] ListPlot[Tooltip[GraphData[#, {"VertexCount", "FractionalChromaticNumber"}],
GraphData[#, "StandardName"]] & /@ GraphData[]] ListPlot[Tooltip[GraphData[#, {"VertexCount", "ZIndex"}],
GraphData[#, "StandardName"]] & /@ GraphData[]] Tooltips in action: Tooltips containing images: 