Having asked that, I'll attempt an answer to your question.
There are two parts of visualizing graphs: the layout of the nodes
and the presentation (labeling/coloring/etc.) I like the layout
qualities
(speed and quality of layout) available with the GraphViz library
which can be accessed from networkx using pygraphviz. I like the
presentation flexibility of matplotlib especially as made available
through networkx. (Of course, I am biased... I know networkx pretty
well :)
3D layout is possible in networkx if you dig into the layout options
far enough.
Presentation requires 3D rendering software which matplotlib doesn't
provide.
But there are other python packages for 3D such as VTK. A quick google
search of "networkx 3d" provides some documentation for a basic vtk
module:
https://networkx.lanl.gov/reference/networkx/networkx.drawing.nx_vtk-
module.html
Good luck-- visualizing >3000 nodes when the project is "very very
urgent" is
not a pleasant task to attempt.
Dan
One thing to note is that the goal of NetworkX is not primarily to
draw graphs. So we don't expect to add the capability of drawing
large graphs in 3D. But we do provide some drawing (with matplotlib)
and options for writing your graph to a file in formats that other
tools might understand: edgelists or adjacency lists, dot (with
pygraphviz or pydot), GML. If there is an output format you would
like that isn't implemented we might be able to add it for you.
Aric
Chris