mirror of
https://github.com/lukefleed/imdb-graph.git
synced 2026-10-07 13:54:53 +00:00
visualization of movie_graph does not work. actor_graph is the same
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 957 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 517 KiB |
Executable
+61
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env python3
|
||||
from itertools import combinations
|
||||
from math import comb
|
||||
import networkx as nx
|
||||
from pyvis.network import Network
|
||||
|
||||
net = Network(height='100%', width='100%', directed=False, bgcolor='#1e1f29', font_color='white')
|
||||
with open('data/Attori.txt') as ifs:
|
||||
for line in ifs:
|
||||
if line.strip():
|
||||
actor_id, actor_name = line.split(maxsplit=1)
|
||||
net.add_node(int(actor_id), label=actor_name)
|
||||
|
||||
movies = {} # {movie_id: [actor_id, ...]}
|
||||
with open('data/Relazioni.txt') as ifs:
|
||||
for line in ifs:
|
||||
if line.strip():
|
||||
movie_id, actor_id = line.split(maxsplit=1)
|
||||
actor_id = int(actor_id)
|
||||
movie_id = int(movie_id)
|
||||
if actor_id not in net.node_ids:
|
||||
continue
|
||||
if movie_id in movies:
|
||||
movies[movie_id].append(actor_id)
|
||||
else:
|
||||
movies[movie_id] = [actor_id]
|
||||
|
||||
edges = set() # set of unique tuples (actor_id, actor_id)
|
||||
for movie_id, actors in movies.items():
|
||||
actors.sort()
|
||||
for actor_id_1, actor_id_2 in combinations(actors, 2):
|
||||
edges.add((actor_id_1, actor_id_2))
|
||||
for actor_id_1, actor_id_2 in edges:
|
||||
net.add_edge(actor_id_1, actor_id_2)
|
||||
|
||||
# net.hrepulsion(node_distance=500, central_gravity=0.3, spring_length=500, spring_strength=0.05, damping=0.2)
|
||||
# net.repulsion(node_distance=500, central_gravity=0.3, spring_length=200, spring_strength=0.05, damping=0.2)
|
||||
# net.show_buttons()
|
||||
|
||||
net.set_options(""""
|
||||
var options = {
|
||||
"edges": {
|
||||
"color": {
|
||||
"inherit": true
|
||||
},
|
||||
"smooth": false
|
||||
},
|
||||
"physics": {
|
||||
"repulsion": {
|
||||
"centralGravity": 0.25,
|
||||
"nodeDistance": 500,
|
||||
"damping": 0.67
|
||||
},
|
||||
"maxVelocity": 48,
|
||||
"minVelocity": 0.39,
|
||||
"solver": "repulsion"
|
||||
}
|
||||
}
|
||||
""")
|
||||
|
||||
net.show('html-files/imdb-graph.html')
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
#!/usr/bin/env python3
|
||||
from itertools import combinations
|
||||
from math import comb
|
||||
from matplotlib.pyplot import title
|
||||
import networkx as nx
|
||||
from pyvis.network import Network
|
||||
|
||||
net = Network(height='100%', width='100%', directed=False, bgcolor='#1e1f29', font_color='white')
|
||||
|
||||
actors_to_keep = []
|
||||
farness_to_keep= []
|
||||
with open('data/top_actors_c.txt') as ifs:
|
||||
for line in ifs:
|
||||
if line.strip():
|
||||
actor_id, farness = line.split(maxsplit=1)
|
||||
actors_to_keep.append(int(actor_id))
|
||||
farness_to_keep.append(float(farness))
|
||||
|
||||
with open('data/Attori.txt') as ifs:
|
||||
for line in ifs:
|
||||
if line.strip():
|
||||
actor_id, actor_name = line.split(maxsplit=1)
|
||||
actor_id = int(actor_id)
|
||||
farness = float(farness)
|
||||
if actor_id in actors_to_keep:
|
||||
if farness in farness_to_keep:
|
||||
net.add_node(actor_id, label=actor_name, size =pow(5,1.0/(farness*2)))
|
||||
|
||||
movies = {} # {movie_id: [actor_id, ...]}
|
||||
with open('data/Relazioni.txt') as ifs:
|
||||
for line in ifs:
|
||||
if line.strip():
|
||||
movie_id, actor_id = line.split(maxsplit=1)
|
||||
actor_id = int(actor_id)
|
||||
movie_id = int(movie_id)
|
||||
if actor_id not in net.node_ids:
|
||||
continue
|
||||
if movie_id in movies:
|
||||
movies[movie_id].append(actor_id)
|
||||
else:
|
||||
movies[movie_id] = [actor_id]
|
||||
|
||||
edges = set() # set of unique tuples (actor_id, actor_id)
|
||||
for movie_id, actors in movies.items():
|
||||
actors.sort()
|
||||
for actor_id_1, actor_id_2 in combinations(actors, 2):
|
||||
edges.add((actor_id_1, actor_id_2))
|
||||
for actor_id_1, actor_id_2 in edges:
|
||||
net.add_edge(actor_id_1, actor_id_2)
|
||||
|
||||
# net.hrepulsion(node_distance=500, central_gravity=0.3, spring_length=500, spring_strength=0.05, damping=0.2)
|
||||
# net.repulsion(node_distance=500, central_gravity=0.3, spring_length=200, spring_strength=0.05, damping=0.2)
|
||||
# net.show_buttons()
|
||||
|
||||
net.set_options("""
|
||||
var options = {
|
||||
"nodes": {
|
||||
"borderWidthSelected": 3
|
||||
},
|
||||
"edges": {
|
||||
"color": {
|
||||
"inherit": true
|
||||
},
|
||||
"smooth": false
|
||||
},
|
||||
"physics": {
|
||||
"repulsion": {
|
||||
"centralGravity": 8.95,
|
||||
"springLength": 500,
|
||||
"springConstant": 0.015,
|
||||
"nodeDistance": 600,
|
||||
"damping": 0.67
|
||||
},
|
||||
"minVelocity": 0.75,
|
||||
"solver": "repulsion"
|
||||
}
|
||||
}
|
||||
""")
|
||||
|
||||
net.show('html-files/closeness-graph.html')
|
||||
Executable
+75
@@ -0,0 +1,75 @@
|
||||
#!/usr/bin/env python3
|
||||
from itertools import combinations
|
||||
from math import comb
|
||||
from matplotlib.pyplot import title
|
||||
import networkx as nx
|
||||
from pyvis.network import Network
|
||||
|
||||
net = Network(height='100%', width='100%', directed=False, bgcolor='#1e1f29', font_color='white')
|
||||
|
||||
actors_to_keep = []
|
||||
harmonic_to_keep =[]
|
||||
with open('data/top_actors_h.txt') as ifs:
|
||||
for line in ifs:
|
||||
if line.strip():
|
||||
actor_id, harmonic = line.split(maxsplit=1)
|
||||
actors_to_keep.append(int(actor_id))
|
||||
harmonic_to_keep.append(float(harmonic))
|
||||
|
||||
with open('data/Attori.txt') as ifs:
|
||||
for line in ifs:
|
||||
if line.strip():
|
||||
actor_id, actor_name = line.split(maxsplit=1)
|
||||
actor_id = int(actor_id)
|
||||
harmonic = float(harmonic)
|
||||
if actor_id in actors_to_keep:
|
||||
if harmonic in harmonic_to_keep:
|
||||
net.add_node(actor_id, label=actor_name, size = harmonic/350)
|
||||
|
||||
movies = {} # {movie_id: [actor_id, ...]}
|
||||
with open('data/Relazioni.txt') as ifs:
|
||||
for line in ifs:
|
||||
if line.strip():
|
||||
movie_id, actor_id = line.split(maxsplit=1)
|
||||
actor_id = int(actor_id)
|
||||
movie_id = int(movie_id)
|
||||
if actor_id not in net.node_ids:
|
||||
continue
|
||||
if movie_id in movies:
|
||||
movies[movie_id].append(actor_id)
|
||||
else:
|
||||
movies[movie_id] = [actor_id]
|
||||
|
||||
edges = set() # set of unique tuples (actor_id, actor_id)
|
||||
for movie_id, actors in movies.items():
|
||||
actors.sort()
|
||||
for actor_id_1, actor_id_2 in combinations(actors, 2):
|
||||
edges.add((actor_id_1, actor_id_2))
|
||||
for actor_id_1, actor_id_2 in edges:
|
||||
net.add_edge(actor_id_1, actor_id_2)
|
||||
|
||||
# net.hrepulsion(node_distance=500, central_gravity=0.3, spring_length=500, spring_strength=0.05, damping=0.2)
|
||||
# net.repulsion(node_distance=500, central_gravity=0.3, spring_length=200, spring_strength=0.05, damping=0.2)
|
||||
# net.show_buttons()
|
||||
|
||||
net.set_options("""
|
||||
var options = {
|
||||
"edges": {
|
||||
"color": {
|
||||
"inherit": true
|
||||
},
|
||||
"smooth": false
|
||||
},
|
||||
"physics": {
|
||||
"repulsion": {
|
||||
"springLength": 1205,
|
||||
"nodeDistance": 1190
|
||||
},
|
||||
"maxVelocity": 23,
|
||||
"minVelocity": 0.75,
|
||||
"solver": "repulsion"
|
||||
}
|
||||
}
|
||||
""")
|
||||
|
||||
net.show('html-files/harmonic-graph.html')
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user