Skip to content

Commit

Permalink
minor network drawing tweaks and corrections
Browse files Browse the repository at this point in the history
  • Loading branch information
darbula committed Apr 22, 2016
1 parent af97dfb commit 1bf6072
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions pymote/network.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,17 +209,13 @@ def savefig(self, fname='network.png', figkwargs={}, *args, **kwargs):
self.get_fig(*args, **kwargs).savefig(fname, **figkwargs)

def get_fig(self, positions=None, edgelist=None, nodeColor='r',
show_labels=True):
show_labels=True, labels=None, dpi=100, node_size=30):
try:
from matplotlib import pyplot as plt
except ImportError:
raise ImportError("Matplotlib required for show()")

# TODO: environment when positions defined
node_size = 30 # in points^2
# calculate label delta based on network size
label_delta = self.get_size()/max([30, len(self)])
dpi = 100
fig_size = tuple(array(self._environment.im.shape) / dpi)

# figsize in inches
Expand All @@ -233,19 +229,22 @@ def get_fig(self, positions=None, edgelist=None, nodeColor='r',
positions[k] = v[:2]
pos = positions
net = self.subnetwork(pos.keys())
label_delta = (max(pos.values(), axis=0) -
min(pos.values(), axis=0))/max([60, len(positions)])
else:
pos = self.pos
net = self
labels = labels or net.labels
nx.draw_networkx_edges(net, pos, alpha=0.6, edgelist=edgelist)
nx.draw_networkx_nodes(net, pos, node_size=node_size,
node_color=nodeColor, cmap='YlOrRd')
if (show_labels):
label_pos = {}
from math import sqrt
label_delta = sqrt(node_size*0.6)*dpi/100
for n in net.nodes():
label_pos[n] = pos[n].copy() + label_delta
nx.draw_networkx_labels(net, label_pos, labels=net.labels)
nx.draw_networkx_labels(net, label_pos, labels=labels,
horizontalalignment='left',
verticalalignment='bottom')
# plt.axis('off')
return fig

Expand Down

0 comments on commit 1bf6072

Please sign in to comment.