From 19f7a7492ab268be4b23297773333eb76672d591 Mon Sep 17 00:00:00 2001 From: Kelly Boothby Date: Fri, 3 Apr 2020 17:49:27 -0700 Subject: [PATCH] fixed bug in interaction between node sizes and unused_color=None --- dwave_networkx/drawing/qubit_layout.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/dwave_networkx/drawing/qubit_layout.py b/dwave_networkx/drawing/qubit_layout.py index 58397d25..eba3c749 100644 --- a/dwave_networkx/drawing/qubit_layout.py +++ b/dwave_networkx/drawing/qubit_layout.py @@ -24,6 +24,8 @@ import networkx as nx from networkx import draw +from itertools import repeat + from dwave_networkx import _PY2 from dwave_networkx.drawing.distinguishable_colors import distinguishable_color_map @@ -293,7 +295,8 @@ def draw_embedding(G, layout, emb, embedded_graph=None, interaction_edges=None, for i, x in enumerate(bag): node_size_dict[(v, x)] = base_node_size * (len(bag) - i) ** 2 - kwargs['node_size'] = [node_size_dict[p] for p in G.nodes()] + kwargs['node_size'] = [node_size_dict[p] for p in G] + qlabel = {q: v for v, chain in iteritems(emb) for q in chain} edgelist = [] @@ -332,7 +335,11 @@ def show(p, q, u, v): return True nodelist = [] node_color = [] - for p in G.nodes(): + size_list = [] + original_size = sizes = kwargs.get('node_size') + if not nx.utils.iterable(sizes): + sizes = repeat(sizes) + for p, s in zip(G, sizes): u = qlabel.get(p) if u is None: pc = unused_color @@ -342,6 +349,10 @@ def show(p, q, u, v): return True if pc is not None: nodelist.append(p) node_color.append(pc) + size_list.append(s) + + if original_size is not None: + kwargs['node_size'] = size_list labels = {} if show_labels: