def test_random_layout(nodes_without_positions, edges): expected_x = [0.417022004703, 0.000114374817, 0.146755890817, 0.186260211378, 0.396767474231] expected_y = [0.720324493442, 0.302332572632, 0.092338594769, 0.345560727043, 0.538816734003] df = random_layout(nodes_without_positions, edges, seed=1) assert np.allclose(df['x'], expected_x) assert np.allclose(df['y'], expected_y)
def ds_layout(nodes, edges=[], layout='circular'): ''' Return nodes positions based on set layout.]]]]] ''' if layout == 'circular': return circular_layout(nodes) elif layout == 'forceatlas2': return forceatlas2_layout(nodes, edges) return random_layout(nodes)
def test_random_layout(nodes_without_positions, edges): expected_x = [ 0.417022004703, 0.000114374817, 0.146755890817, 0.186260211378, 0.396767474231 ] expected_y = [ 0.720324493442, 0.302332572632, 0.092338594769, 0.345560727043, 0.538816734003 ] df = random_layout(nodes_without_positions, edges, seed=1) assert np.allclose(df['x'], expected_x) assert np.allclose(df['y'], expected_y)
'overflowX': 'scroll' } } #Create nodes and edges np.random.seed(0) n=100 m=200 nodes = pd.DataFrame(["node"+str(i) for i in range(n)], columns=['name']) #nodes.tail() edges = pd.DataFrame(np.random.randint(0,len(nodes), size=(m, 2)), columns=['source', 'target']) #edges.tail() randomloc = random_layout(nodes) #randomloc.tail() cvsopts = dict(plot_height=600, plot_width=800) #Creates nodes in datasahder image def nodesplot(nodes, name=None, canvas=None, cat=None): canvas = ds.Canvas(**cvsopts) if canvas is None else canvas aggregator=None if cat is None else ds.count_cat(cat) agg=canvas.points(nodes,'x','y',aggregator) return tf.spread(tf.shade(agg, cmap=["#FF3333"]), px=3, name=name) forcedirected = random_layout(nodes, edges) #creates edges in datashader image def edgesplot(edges, name=None, canvas=None):