How To Draw A Tree More Beautifully In Networkx
Solution 1:
I am no expert in this, but here is code that uses the pydot
library and its graph_viz
dependency. These libraries come with Anaconda Python but are not installed by default, so first do this from the command prompt:
conda install pydot
Then here is code adapted from Circular Tree.
import matplotlib.pyplotas plt
import networkx as nx
import pydot
from networkx.drawing.nx_pydotimport graphviz_layout
T = nx.balanced_tree(2, 5)
pos = graphviz_layout(T, prog="twopi")
nx.draw(T, pos)
plt.show()
If you adjust the window to make it square, the result is
Or, if you prefer a top-down tree, you could replace the string "twopi"
in that code with "dot"
, and if you make the resulting window wider you get
Also, if you use the string "circo"
instead and make the window wider, you get
Solution 2:
If you want to do this without additional libraries, look at this answer, which shows a way to get a hierarchical tree layout or a circular layout purely in networkx:
https://stackoverflow.com/a/29597209/2966723
I'm planning to add a slightly modified version of this to networkx sometime soon.
Post a Comment for "How To Draw A Tree More Beautifully In Networkx"