How to visualize a hierarchical clustering as a tree of labelled nodes in Python?

The chapter "Normalized Information Distance", visualizes a hierarchical clustering as a tree of nodes with labels:

Unfortunately I cannot find out how to replicate this visualization, maybe they did it in a manual way with Tikz? How can I achieve this effect automatically in Python, preferably with Scikit-Learn? I only found the Dendogram, which looks nothing like the effect I want to replicate:

Result (thanks at @andy-w):

model = AgglomerativeClustering(linkage="average", n_clusters=N_CLUSTERS, compute_distances=True, affinity="l1")
model.fit(data)
no_of_observations = np.arange(2, model.children_.shape[0]+2)

G = nx.Graph()
for i in range(n):

dot = nx.nx_pydot.to_pydot(G).to_string()
dot = graphviz.Source(dot, engine='neato')
dot.render(format='pdf',filename='tree')


This specific format to me looks like graphviz. So if you can extract the tree edges from your original object, then you can render it, example below (some roundabout to convert between different objects):

import networkx as nx
import pydot
import graphviz

# Just a part of your graph
G = nx.Graph()
ed = [('n3','n0'),
('n0','MusicHendrixA'),
('n0','MusicHendrixB'),
('n3','n2'),
('n2','n8'),
('n8','MusicBergA'),
('n8','MusicBergB') ]