This repository has been archived on 2025-09-28. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
linkmapy/lib/graph.py
2021-12-09 10:55:29 +01:00

68 lines
1.7 KiB
Python

from networkx import from_pandas_edgelist
from pandas import DataFrame
from pyvis.network import Network
def pyvis_graph_from_pandas_DF(pandas_df:DataFrame, source_column:str="link1", target_column:str="link2", heading:str=None) -> Network:
nx = from_pandas_edgelist(pandas_df, source=source_column, target=target_column)
pyvis_net = Network(bgcolor="#222222", font_color="#fafafa", width="100%", height="95%")
pyvis_net.from_nx(nx, default_node_size=8)
if heading != None:
pyvis_net.heading = heading + """
<style>
body {
background-color: #222222;
}
h1 {
font-size: 1.15rem;
margin: .5rem;
color: #fafafa;
font-family: sans-serif;
}
#mynetwork {
border: none !important;
}
</style>
"""
pyvis_options = """
var options = {
"nodes": {
"font": {
"size": 12
}
},
"edges": {
"arrows": {
"to": {
"enabled": true,
"scaleFactor": 0.3
}
},
"color": {
"inherit": true
},
"smooth": false
},
"interaction": {
"hover": false
},
"physics": {
"barnesHut": {
"centralGravity": 0,
"springLength": 200,
"springConstant": 0.01,
"avoidOverlap": 0
},
"minVelocity": 0.75
}
}
"""
# pyvis_net.show_buttons()
pyvis_net.set_options(pyvis_options)
return pyvis_net