annotate gamelib/visualize.py @ 101:e92035dce1f6

pep8hg pushhg push
author Rizmari Versfeld <rizziepit@gmail.com>
date Wed, 09 May 2012 22:11:52 +0200
parents b27b4dede626
children 80fa87ac505e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
100
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
1 import networkx
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
2
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
3 import matplotlib.pyplot as plt
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
4
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
5 import pylab
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
6
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
7 from gamelib import research
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
8 from gamelib import schematics
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
9 from gamelib.lab import Lab
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
10
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
11
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
12 def construct_research_tree(lab):
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
13 rt = networkx.DiGraph()
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
14 for research in lab.new_research:
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
15 rt.add_node(research, label=research.NAME, color='green')
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
16 for research in lab.new_research:
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
17 for prereq in research.PREREQUISITES:
101
e92035dce1f6 pep8hg pushhg push
Rizmari Versfeld <rizziepit@gmail.com>
parents: 100
diff changeset
18 rt.add_edge(prereq[0], research, weight=1.0 / prereq[1], \
100
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
19 label=prereq[1], color='green')
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
20 for schematic in lab.new_schematics:
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
21 rt.add_node(schematic, label=schematic.NAME, color='red')
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
22 for schematic in lab.new_schematics:
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
23 for prereq in schematic.PREREQUISITES:
101
e92035dce1f6 pep8hg pushhg push
Rizmari Versfeld <rizziepit@gmail.com>
parents: 100
diff changeset
24 rt.add_edge(prereq[0], schematic, weight=1.0 / prereq[1], \
100
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
25 label=prereq[1], color='red', size=schematic.COST/10)
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
26 return rt
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
27
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
28
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
29 def draw(rt):
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
30 agraph = networkx.to_agraph(rt)
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
31 agraph.graph_attr['label'] = 'Research Tree'
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
32 #agraph.layout(prog='dot')
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
33 agraph.write('research_tree.dot')
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
34
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
35
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
36 def main():
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
37 lab = Lab({'science':{}})
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
38 research_tree = construct_research_tree(lab)
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
39 draw(research_tree)