File size: 1,274 Bytes
7aa8120
e16b974
7aa8120
3698810
 
 
 
 
 
 
 
d8f6f04
3698810
 
d8f6f04
3698810
 
 
 
e16b974
 
3698810
 
 
 
 
 
 
 
 
 
e16b974
 
3698810
 
 
 
 
 
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
import streamlit as st
from st_cytoscape import cytoscape

# elements = [
#     {"data": {"id": "X"}, "selected": True, "selectable": False},
#     {"data": {"id": "Y"}},
#     {"data": {"id": "Z"}},
#     {"data": {"source": "X", "target": "Y", "id": "X➞Y"}},
#     {"data": {"source": "Z", "target": "Y", "id": "Z➞Y"}},
#     {"data": {"source": "Z", "target": "X", "id": "Z➞X"}},
# ]

import requests
import json

url = "https://raw.githubusercontent.com/cytoscape/cytoscape.js/refs/heads/master/documentation/demos/tokyo-railways/tokyo-railways.json"
response = requests.get(url)
data = json.loads(response.text)
elements = data['elements']['nodes'] + data['elements']['edges']

stylesheet = [
    {"selector": "node",
      "style": {"label": "data(station_name)", "width": 10, "height": 10}},
    # {
    #     "selector": "edge",
    #     "style": {
    #         "width": 3,
    #         "curve-style": "bezier",
    #         "target-arrow-shape": "triangle",
    #     },
    # },
]


selected = cytoscape(elements, stylesheet, width="100%", height="540px", layout={"name": "preset"}, key="graph")

print(selected)
st.markdown("**Selected nodes**: %s" % (", ".join(selected["nodes"])))
st.markdown("**Selected edges**: %s" % (", ".join(selected["edges"])))