1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| import dash import math
import dash_cytoscape as cyto import dash_html_components as html
app = dash.Dash(__name__)
nodes = [ { 'data': {'id': short, 'label': label}, 'position': {'x': 20 * lat, 'y': -20 * long} } for short, label, long, lat in ( ('la', 'Los Angeles', 34.03, -118.25), ('nyc', 'New York', 40.71, -74), ('to', 'Toronto', 43.65, -79.38), ('mtl', 'Montreal', 45.50, -73.57), ('van', 'Vancouver', 49.28, -123.12), ('chi', 'Chicago', 41.88, -87.63), ('bos', 'Boston', 42.36, -71.06), ('hou', 'Houston', 29.76, -95.37) ) ]
edges = [ {'data': {'source': source, 'target': target}} for source, target in ( ('van', 'la'), ('la', 'chi'), ('hou', 'chi'), ('to', 'mtl'), ('mtl', 'bos'), ('nyc', 'bos'), ('to', 'hou'), ('to', 'nyc'), ('la', 'nyc'), ('nyc', 'bos') ) ]
elements = nodes + edges
app.layout = html.Div([ cyto.Cytoscape( id='cytoscape-layout-9', elements=elements, style={'width': '100%', 'height': '350px'}, layout={ 'name': 'cose' } ) ])
if __name__ == '__main__': app.run_server(debug=True)
|