Hello,
I have a question - I have differences calculated between game genres. The difference is a positive float number, the bigger the number, the greater the difference there is between the two genres.
I want to visualise differences and I have the following code:
import json
import networkx as nx
import matplotlib.pyplot as plt
with open('genres_weights.json', 'r') as file:
data = json.load(file)
G = nx.Graph()
max_diff = max(item['difference'] for item in data) if data else 1.0
for item in data:
node1, node2 = item['weightsPair']
difference = item['difference']
weight = item['difference'] + 0.25
G.add_edge(node1, node2, weight=weight, original_diff=difference)
plt.figure(figsize=(40, 20))
pos = nx.kamada_kawai_layout(G, weight='weight')
nx.draw_networkx_nodes(G, pos, node_size=2000, node_color='#2b83ba', alpha=0.9)
nx.draw_networkx_labels(G, pos, font_size=7, font_family='sans-serif')
plt.show()
that gives the following result for my data:

A lot of things look great, and overall graph represents data correctly (I guess). But there is the thing - in the bottom left part of the graph there are two bubbles: “immersive sim” and “rhythm”. Those two genres appear to be very similar (as some other pairs of games that are very similar and have a very low number for difference), but in reality, they are not - they have a difference of 9, which is a lot (the maximum difference between genres is around 14), so I expect them to be on the different side of the graph and not nearly together.
I’m not sure where the problem is. Can someone please help me?


deleted by creator
deleted by creator
Hi, thank you for the reply. I tried, but it didn’t suggest any useful.
Your suggestion about drawing edges is only visual - it doesn’t actually influence position of nodes on a graph.