博弈团簇寿命
This commit is contained in:
parent
786aee8fc4
commit
fdea19a9e5
@ -2,22 +2,28 @@
|
||||
统计所有的连通子图规模
|
||||
"""
|
||||
import csv
|
||||
import json
|
||||
import numpy as np
|
||||
from collections import Counter
|
||||
from island.matches import Matches
|
||||
from island.match import Match
|
||||
from matplotlib import pyplot as plt
|
||||
|
||||
class ClusterStat:
|
||||
def __init__(self):
|
||||
def __init__(self, cb):
|
||||
self.detail = {}
|
||||
# self.matches = Matches.from_profile_expr(lambda r: True)
|
||||
self.matches = Matches.from_profile('SURVIVE')
|
||||
self.life = {} # key(size), value(list of cluster-life)
|
||||
self.cluster_born = cb
|
||||
|
||||
|
||||
def stat(self):
|
||||
for m in self.matches.data:
|
||||
cluster = {}
|
||||
dick = {}
|
||||
no = 0
|
||||
cluster_life = {}
|
||||
for r in m.query('player','join').raw_data:
|
||||
cluster[r['pid']] = no
|
||||
no += 1
|
||||
@ -27,10 +33,50 @@ class ClusterStat:
|
||||
cmax, cmin = cluster[r['b']], cluster[r['a']]
|
||||
else:
|
||||
cmax, cmin = cluster[r['a']], cluster[r['b']]
|
||||
lmax = [k for (k,v) in cluster.items() if v == cmax]
|
||||
for k in lmax:
|
||||
cluster[k] = cmin
|
||||
res = [v for v in Counter(cluster.values()).values()]
|
||||
if self.cluster_born == 1 or ((cmin,cmax) in dick and dick[(cmin,cmax)] > self.cluster_born - 1):
|
||||
#link
|
||||
lmax = [k for (k,v) in cluster.items() if v == cmax]
|
||||
for k in lmax:
|
||||
cluster[k] = cmin
|
||||
else:
|
||||
if (cmin, cmax) not in dick:
|
||||
dick[(cmin, cmax)] = 1
|
||||
else:
|
||||
dick[(cmin, cmax)] += 1
|
||||
info = m.query('game', 'created').select('info').first()['info']
|
||||
conf = json.loads(info['config'])
|
||||
game_end_at = int(info['game_end_at'])
|
||||
foods = {}
|
||||
for p in m.query('player', 'join').select('pid').raw_data:
|
||||
foods[p['pid']] = conf['start_resource']
|
||||
|
||||
for i in range(1, game_end_at + 1):
|
||||
for a in m.query('action', 'done').where(lambda x: x['rno'] == i).raw_data:
|
||||
foods[a['a']] += conf['payoffs']["%s%s" % (a['act_a'], a['act_b'])][0] * a['tr'] / 1440.0
|
||||
foods[a['b']] += conf['payoffs']["%s%s" % (a['act_a'], a['act_b'])][1] * a['tr'] / 1440.0
|
||||
for j in foods.keys():
|
||||
foods[j] -= conf['rounds']['consumption']
|
||||
for k,v in foods.items():
|
||||
if -10 < v <= 0:
|
||||
if cluster[k] in cluster_life:
|
||||
if cluster_life[cluster[k]] < i:
|
||||
cluster_life[cluster[k]] = i
|
||||
else:
|
||||
cluster_life[cluster[k]] = i
|
||||
foods[k] = -1000
|
||||
for k,v in foods.items():
|
||||
if v >= 0:
|
||||
if cluster[k] in cluster_life:
|
||||
if cluster_life[cluster[k]] < game_end_at:
|
||||
cluster_life[cluster[k]] = game_end_at
|
||||
else:
|
||||
cluster_life[cluster[k]] = game_end_at
|
||||
counter = Counter(cluster.values())
|
||||
for k,v in counter.items():
|
||||
if v not in self.life:
|
||||
self.life[v] = []
|
||||
self.life[v].append(cluster_life[k])
|
||||
res = [v for v in counter.values()]
|
||||
# print(m.name, list(sorted(res, reverse=True)))
|
||||
self.detail[m.name] = res
|
||||
|
||||
@ -44,10 +90,13 @@ class ClusterStat:
|
||||
for d in data:
|
||||
res[d-1] += d
|
||||
res /= s
|
||||
print(res)
|
||||
# print(res)
|
||||
np.save('outputs/cluster.npy', res)
|
||||
with open("outputs/cluster_life_%d.json" % self.cluster_born, 'w') as f:
|
||||
json.dump(self.life, f)
|
||||
|
||||
if __name__ == '__main__':
|
||||
c = ClusterStat()
|
||||
c.stat()
|
||||
c.output()
|
||||
for i in range(1, 10):
|
||||
c = ClusterStat(i)
|
||||
c.stat()
|
||||
c.output()
|
||||
|
||||
Binary file not shown.
1
outputs/cluster_life_1.json
Normal file
1
outputs/cluster_life_1.json
Normal file
@ -0,0 +1 @@
|
||||
{"4": [13, 15, 6, 10, 10, 10, 12, 6, 14, 7, 12, 11, 7, 12, 10, 10, 8, 8, 15, 5], "3": [3, 6, 14, 2, 4, 7, 6, 11, 5, 5, 13, 5, 7, 5, 10, 9, 10, 11, 4, 4], "1": [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2], "14": [7], "2": [13, 14, 6, 12, 12, 8, 12, 4, 12, 5, 4, 7, 11, 10, 10, 10, 6, 12, 4, 14, 13, 9, 10, 10, 12, 12, 5, 12, 2, 13, 14, 11, 14, 4, 6, 13, 13, 13, 7, 12, 12, 7, 4, 12, 12, 11, 7, 4, 9, 10, 6, 7, 4, 5, 10, 10, 10, 6, 5, 14, 7, 14, 12, 4, 13, 13, 13, 6, 10, 10, 10, 8, 4, 12, 5, 10, 10, 10, 4, 4, 11, 11, 11, 4, 11, 11, 11, 11, 11, 11, 8, 14, 4, 10, 10, 6, 10, 9, 10, 10, 4, 4, 10, 10, 10, 10, 5, 10, 2, 10, 10, 13, 12, 11, 2, 10, 4, 10, 10, 14, 2, 4, 3, 4, 11, 11, 11, 11, 11], "17": [6], "12": [4, 5], "10": [7], "7": [11, 5], "6": [6, 7, 12, 5, 15, 9, 5], "8": [8, 10, 6], "5": [9, 4, 5, 14, 4, 5, 5, 4], "11": [15], "9": [10, 7]}
|
||||
1
outputs/cluster_life_2.json
Normal file
1
outputs/cluster_life_2.json
Normal file
@ -0,0 +1 @@
|
||||
{"2": [12, 13, 7, 13, 5, 6, 14, 3, 6, 4, 6, 12, 5, 12, 14, 6, 11, 8, 15, 6, 10, 7, 12, 12, 5, 6, 6, 2, 7, 11, 8, 10, 10, 10, 10, 9, 7, 6, 12, 12, 14, 13, 6, 9, 10, 10, 12, 12, 5, 12, 13, 14, 15, 15, 10, 11, 15, 14, 10, 5, 6, 7, 13, 13, 13, 5, 7, 12, 7, 12, 6, 7, 12, 12, 11, 7, 11, 9, 10, 6, 7, 10, 10, 9, 4, 10, 14, 14, 6, 14, 14, 5, 14, 7, 14, 12, 13, 13, 13, 13, 6, 10, 10, 10, 8, 7, 12, 12, 8, 10, 10, 10, 11, 11, 11, 7, 11, 11, 11, 11, 11, 11, 11, 7, 8, 11, 12, 11, 14, 10, 10, 6, 10, 9, 10, 9, 10, 10, 10, 10, 10, 5, 10, 10, 10, 10, 10, 10, 10, 8, 13, 8, 11, 12, 11, 10, 10, 10, 14, 15, 15, 11, 11, 11, 11, 11], "1": [3, 3, 2, 2, 2, 3, 3, 2, 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, 2, 2, 3, 2, 2, 3, 3, 4, 2, 3, 2, 3, 3, 3, 2, 2, 3, 3, 2, 3, 3, 2, 3, 2, 4, 2, 2, 2, 3, 2, 2, 4, 3, 3, 4, 3, 3, 3, 5, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 3, 3, 2, 2, 4, 2, 4, 2, 4, 2, 2, 3, 3, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 7, 2, 3, 2, 2, 2, 4, 2, 4, 2, 4, 2, 3, 4, 4, 4, 2, 4, 2, 2, 2, 3, 2, 3, 2, 2, 2, 2, 2, 2, 4, 2, 3, 5, 3, 4, 3, 6, 2, 2, 4, 2, 2, 4, 2, 5, 3, 5, 3, 2, 4, 3, 2, 6, 2, 2, 2, 4, 2, 2, 2, 4, 2, 5, 3, 2, 2, 4, 5, 2, 2, 3, 5, 2, 2, 2, 4, 2, 3, 2, 2, 2, 2, 3, 2, 4, 2, 2, 2, 2, 5, 2, 5, 2, 4, 4, 3, 4, 4, 2, 2, 3, 2, 2, 4, 2, 4, 2, 4, 2, 2, 4, 2, 3, 2, 2, 5, 2, 4, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 3, 3, 5, 5, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 4, 2, 2, 2, 4, 2, 4, 2, 3, 2, 2, 4, 4, 2, 2, 3, 2, 2, 2, 2, 2, 3, 2, 2, 5, 4, 2, 2, 2, 2, 5, 2, 5, 5, 2, 2, 2, 2, 2, 4, 3, 2, 2, 2, 5, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 5, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 3, 4, 2, 2, 2], "3": [4, 7, 14, 10], "5": [4], "4": [10, 12]}
|
||||
1
outputs/cluster_life_3.json
Normal file
1
outputs/cluster_life_3.json
Normal file
@ -0,0 +1 @@
|
||||
{"2": [12, 13, 7, 13, 6, 14, 6, 6, 12, 12, 14, 6, 11, 8, 15, 10, 7, 12, 12, 10, 5, 10, 6, 2, 7, 11, 8, 10, 10, 10, 10, 9, 7, 6, 12, 12, 14, 13, 6, 9, 10, 10, 12, 12, 12, 13, 14, 15, 15, 10, 11, 15, 14, 10, 5, 6, 7, 13, 13, 13, 7, 12, 7, 12, 6, 7, 12, 12, 11, 7, 11, 9, 10, 6, 7, 10, 10, 9, 10, 14, 14, 6, 14, 14, 14, 7, 14, 12, 13, 13, 13, 13, 6, 10, 10, 10, 8, 12, 12, 8, 10, 10, 10, 11, 11, 11, 7, 11, 11, 11, 11, 11, 11, 11, 7, 8, 11, 12, 11, 14, 10, 10, 6, 10, 9, 10, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 8, 13, 8, 11, 12, 11, 10, 10, 10, 14, 15, 15, 11, 11, 11, 11, 11], "1": [3, 3, 2, 2, 2, 3, 3, 3, 2, 4, 4, 3, 2, 2, 5, 3, 2, 3, 2, 2, 2, 2, 2, 3, 4, 3, 4, 2, 3, 2, 3, 3, 3, 2, 2, 3, 3, 4, 2, 3, 2, 3, 3, 3, 3, 4, 2, 2, 3, 3, 2, 4, 3, 3, 2, 3, 3, 2, 3, 4, 5, 2, 2, 2, 3, 2, 2, 4, 3, 3, 4, 3, 3, 6, 3, 5, 2, 5, 2, 2, 2, 2, 4, 2, 6, 2, 2, 4, 2, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 5, 2, 2, 4, 2, 2, 3, 3, 2, 2, 4, 2, 4, 2, 4, 2, 2, 3, 3, 5, 2, 2, 5, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 7, 2, 3, 2, 2, 2, 4, 2, 4, 2, 4, 2, 3, 4, 4, 4, 2, 4, 2, 2, 2, 3, 2, 3, 2, 2, 2, 2, 2, 4, 2, 5, 4, 2, 3, 5, 3, 4, 3, 6, 2, 2, 4, 2, 2, 4, 2, 5, 3, 5, 3, 2, 4, 3, 2, 6, 2, 2, 2, 4, 2, 2, 2, 4, 2, 5, 3, 2, 2, 4, 4, 4, 5, 2, 2, 3, 5, 2, 2, 4, 2, 5, 4, 2, 3, 2, 2, 2, 5, 2, 7, 3, 2, 4, 2, 2, 2, 2, 5, 2, 5, 2, 4, 4, 3, 4, 4, 2, 2, 3, 2, 2, 4, 2, 4, 2, 4, 2, 2, 4, 2, 3, 2, 2, 5, 2, 4, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 3, 3, 5, 5, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 4, 2, 2, 2, 4, 4, 5, 2, 4, 2, 3, 2, 2, 4, 4, 2, 2, 3, 2, 2, 2, 2, 2, 3, 2, 2, 5, 4, 2, 2, 2, 2, 5, 2, 5, 5, 2, 2, 2, 2, 2, 4, 3, 2, 2, 2, 5, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 5, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 3, 4, 2, 2, 2], "3": [7, 14, 12, 10]}
|
||||
1
outputs/cluster_life_4.json
Normal file
1
outputs/cluster_life_4.json
Normal file
@ -0,0 +1 @@
|
||||
{"2": [12, 13, 7, 13, 14, 6, 12, 12, 14, 6, 11, 8, 15, 10, 7, 12, 12, 10, 10, 7, 11, 10, 10, 10, 10, 7, 6, 12, 12, 14, 13, 6, 9, 10, 10, 12, 12, 12, 13, 14, 15, 15, 10, 11, 15, 14, 10, 6, 7, 13, 13, 13, 7, 12, 7, 12, 6, 7, 12, 12, 11, 7, 11, 9, 10, 7, 10, 10, 9, 10, 14, 14, 14, 14, 14, 7, 14, 12, 13, 13, 13, 13, 10, 10, 10, 8, 12, 12, 8, 10, 10, 10, 11, 11, 11, 7, 11, 11, 11, 11, 11, 11, 11, 8, 11, 12, 11, 14, 10, 10, 6, 10, 9, 10, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 8, 13, 8, 11, 12, 11, 10, 10, 10, 14, 15, 15, 11, 11, 11, 11, 11], "1": [3, 3, 2, 2, 2, 3, 3, 3, 2, 4, 4, 3, 2, 2, 5, 3, 2, 3, 2, 2, 2, 2, 2, 6, 5, 3, 4, 3, 4, 2, 3, 2, 3, 3, 3, 2, 2, 3, 3, 4, 2, 3, 2, 3, 3, 3, 3, 4, 2, 2, 3, 3, 2, 4, 3, 3, 2, 3, 3, 6, 2, 3, 6, 4, 5, 2, 2, 5, 5, 2, 3, 2, 2, 7, 4, 3, 3, 4, 3, 3, 6, 3, 5, 2, 5, 2, 2, 2, 2, 5, 4, 5, 2, 6, 6, 2, 6, 2, 2, 4, 2, 3, 2, 2, 2, 2, 2, 2, 4, 5, 2, 2, 2, 2, 8, 3, 2, 4, 2, 2, 2, 2, 2, 9, 2, 2, 7, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 5, 2, 2, 4, 2, 2, 3, 3, 2, 2, 4, 2, 4, 2, 4, 2, 2, 3, 3, 5, 2, 2, 5, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 7, 2, 3, 2, 2, 2, 4, 2, 4, 2, 4, 2, 3, 4, 4, 4, 2, 4, 2, 2, 4, 2, 5, 3, 2, 3, 2, 2, 2, 2, 2, 4, 2, 5, 4, 2, 3, 5, 3, 4, 3, 6, 2, 2, 4, 2, 2, 4, 2, 5, 3, 5, 3, 2, 4, 3, 2, 6, 2, 2, 2, 4, 6, 6, 2, 2, 2, 4, 2, 5, 3, 2, 2, 4, 4, 4, 5, 2, 2, 5, 3, 6, 5, 2, 2, 4, 2, 5, 4, 2, 3, 2, 6, 6, 2, 2, 5, 2, 7, 3, 2, 4, 2, 2, 2, 2, 5, 2, 5, 2, 4, 4, 3, 4, 4, 2, 2, 3, 2, 2, 4, 2, 4, 2, 4, 2, 2, 4, 2, 3, 7, 2, 6, 2, 5, 2, 4, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 3, 3, 5, 5, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 4, 2, 2, 2, 4, 4, 5, 2, 4, 2, 3, 2, 2, 4, 4, 2, 2, 3, 2, 2, 2, 2, 2, 3, 2, 2, 5, 4, 2, 2, 2, 2, 5, 2, 5, 5, 2, 2, 2, 2, 2, 4, 3, 2, 2, 2, 5, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 5, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 3, 4, 2, 2, 2], "3": [14, 12, 10]}
|
||||
1
outputs/cluster_life_5.json
Normal file
1
outputs/cluster_life_5.json
Normal file
@ -0,0 +1 @@
|
||||
{"2": [12, 13, 13, 14, 12, 12, 14, 11, 15, 10, 12, 12, 10, 11, 10, 10, 10, 10, 12, 12, 12, 14, 13, 9, 10, 10, 12, 12, 12, 13, 14, 15, 15, 10, 11, 15, 14, 10, 7, 13, 13, 13, 7, 12, 7, 12, 7, 12, 12, 11, 11, 9, 10, 7, 10, 10, 9, 10, 14, 14, 14, 14, 14, 7, 14, 12, 13, 13, 13, 13, 10, 10, 10, 8, 12, 12, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 8, 11, 12, 11, 14, 10, 10, 10, 9, 10, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 11, 12, 11, 10, 10, 10, 14, 15, 15, 11, 11, 11, 11, 11], "1": [3, 3, 2, 2, 2, 3, 3, 3, 5, 2, 4, 4, 3, 2, 2, 7, 5, 3, 2, 3, 2, 2, 2, 2, 2, 6, 5, 3, 4, 3, 4, 2, 3, 2, 3, 3, 3, 2, 2, 3, 3, 4, 2, 3, 2, 3, 3, 3, 3, 6, 4, 2, 2, 3, 3, 2, 4, 3, 3, 2, 3, 6, 3, 6, 2, 3, 6, 4, 5, 2, 2, 5, 5, 2, 3, 2, 2, 7, 4, 3, 6, 8, 3, 5, 4, 3, 3, 6, 6, 3, 5, 2, 5, 6, 2, 7, 2, 2, 2, 10, 5, 4, 5, 6, 2, 6, 6, 2, 6, 2, 2, 4, 2, 3, 2, 2, 2, 2, 2, 2, 7, 6, 4, 5, 2, 2, 2, 2, 8, 3, 2, 4, 2, 2, 2, 2, 2, 9, 2, 2, 7, 6, 6, 6, 4, 7, 2, 6, 2, 2, 2, 2, 2, 2, 6, 2, 5, 2, 2, 4, 5, 6, 2, 2, 3, 3, 2, 2, 4, 2, 4, 2, 4, 2, 2, 3, 3, 5, 2, 2, 5, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 7, 2, 3, 2, 2, 2, 4, 2, 4, 2, 4, 2, 3, 4, 4, 4, 2, 4, 2, 2, 4, 2, 5, 3, 2, 3, 2, 2, 6, 6, 2, 2, 2, 4, 2, 5, 4, 2, 3, 5, 3, 4, 3, 6, 2, 6, 2, 4, 6, 2, 2, 4, 2, 5, 7, 3, 5, 3, 5, 2, 4, 3, 2, 6, 2, 2, 2, 4, 6, 6, 2, 2, 2, 4, 2, 5, 3, 2, 2, 4, 4, 4, 5, 2, 2, 5, 3, 6, 5, 2, 2, 4, 2, 5, 4, 2, 3, 2, 6, 6, 2, 2, 5, 2, 7, 3, 2, 4, 2, 6, 2, 8, 2, 2, 5, 2, 5, 2, 4, 4, 3, 4, 4, 2, 2, 3, 6, 7, 2, 2, 4, 2, 4, 2, 4, 2, 2, 4, 2, 3, 7, 2, 6, 2, 5, 2, 4, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 3, 3, 5, 5, 2, 2, 2, 2, 6, 6, 2, 2, 2, 3, 2, 2, 4, 2, 2, 2, 4, 4, 5, 2, 4, 2, 3, 2, 2, 4, 4, 2, 2, 8, 3, 7, 2, 2, 2, 2, 8, 2, 6, 3, 2, 2, 5, 4, 2, 2, 2, 2, 5, 2, 5, 5, 2, 2, 2, 2, 2, 4, 3, 2, 2, 2, 5, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 5, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 3, 4, 2, 2, 2], "3": [14, 10]}
|
||||
1
outputs/cluster_life_6.json
Normal file
1
outputs/cluster_life_6.json
Normal file
@ -0,0 +1 @@
|
||||
{"2": [12, 13, 13, 14, 12, 12, 14, 11, 15, 12, 12, 11, 10, 10, 10, 10, 12, 12, 12, 14, 13, 9, 10, 10, 12, 12, 12, 13, 14, 15, 15, 10, 11, 15, 14, 10, 13, 13, 13, 12, 12, 12, 12, 11, 11, 9, 10, 10, 10, 10, 14, 14, 14, 14, 14, 14, 12, 13, 13, 13, 13, 10, 10, 10, 8, 12, 12, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 8, 11, 12, 11, 14, 10, 10, 10, 9, 10, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 11, 12, 11, 10, 10, 10, 14, 15, 15, 11, 11, 11, 11, 11], "1": [3, 3, 2, 2, 2, 3, 3, 3, 5, 2, 4, 4, 3, 2, 2, 7, 5, 3, 2, 3, 2, 2, 2, 2, 2, 6, 5, 3, 4, 3, 4, 2, 3, 2, 3, 3, 3, 2, 2, 3, 3, 4, 2, 3, 2, 3, 3, 3, 3, 6, 4, 2, 2, 3, 3, 2, 4, 3, 3, 2, 3, 6, 3, 6, 2, 3, 6, 4, 5, 2, 2, 5, 5, 2, 3, 2, 2, 7, 4, 3, 6, 8, 3, 5, 4, 3, 3, 6, 6, 10, 3, 5, 2, 6, 5, 6, 2, 7, 2, 2, 2, 10, 5, 10, 4, 7, 5, 6, 2, 6, 6, 2, 6, 2, 2, 4, 2, 3, 2, 2, 2, 2, 2, 2, 7, 6, 4, 5, 2, 2, 2, 2, 8, 3, 2, 4, 2, 2, 2, 2, 2, 9, 2, 2, 7, 6, 6, 6, 4, 7, 2, 6, 2, 2, 2, 2, 2, 2, 6, 2, 5, 2, 2, 4, 5, 6, 2, 2, 3, 3, 2, 2, 4, 2, 4, 2, 4, 2, 2, 3, 3, 5, 2, 2, 5, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 7, 2, 3, 2, 2, 2, 4, 2, 4, 2, 4, 2, 3, 4, 4, 4, 2, 4, 2, 2, 4, 2, 5, 3, 2, 3, 2, 2, 6, 6, 6, 7, 2, 2, 2, 4, 2, 5, 4, 2, 3, 6, 5, 3, 7, 4, 3, 7, 6, 2, 7, 6, 7, 2, 4, 6, 2, 2, 6, 4, 2, 5, 7, 3, 5, 3, 5, 2, 4, 3, 2, 6, 2, 2, 2, 4, 6, 6, 2, 7, 2, 7, 2, 4, 2, 5, 3, 2, 9, 7, 2, 4, 4, 4, 5, 2, 2, 5, 3, 6, 5, 2, 2, 4, 2, 7, 7, 5, 4, 2, 3, 2, 6, 6, 2, 2, 5, 2, 7, 3, 2, 4, 2, 6, 2, 8, 2, 2, 5, 2, 5, 2, 4, 4, 3, 4, 4, 2, 2, 3, 6, 7, 2, 2, 4, 2, 4, 2, 4, 2, 2, 4, 2, 3, 7, 2, 6, 2, 5, 2, 4, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 3, 3, 5, 5, 2, 2, 2, 2, 6, 6, 2, 2, 2, 3, 2, 2, 4, 2, 2, 2, 4, 4, 5, 2, 4, 2, 3, 2, 2, 4, 4, 2, 2, 8, 3, 7, 2, 2, 2, 2, 8, 2, 6, 3, 2, 2, 5, 4, 2, 2, 2, 2, 5, 2, 5, 5, 2, 2, 2, 2, 2, 4, 3, 2, 2, 2, 5, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 5, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 3, 4, 2, 2, 2], "3": [14, 10]}
|
||||
1
outputs/cluster_life_7.json
Normal file
1
outputs/cluster_life_7.json
Normal file
@ -0,0 +1 @@
|
||||
{"2": [12, 13, 13, 14, 12, 12, 14, 11, 15, 12, 12, 11, 10, 10, 10, 12, 12, 14, 13, 9, 10, 10, 12, 12, 12, 13, 14, 15, 15, 11, 15, 14, 13, 13, 13, 12, 12, 12, 12, 11, 11, 10, 10, 10, 10, 14, 14, 14, 14, 14, 14, 12, 13, 13, 13, 13, 10, 10, 10, 12, 12, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 11, 14, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 11, 12, 11, 10, 10, 10, 14, 15, 15, 11, 11, 11, 11, 11], "1": [3, 3, 2, 2, 2, 3, 3, 3, 5, 2, 4, 4, 3, 2, 2, 7, 5, 3, 2, 3, 2, 2, 2, 2, 2, 6, 5, 3, 4, 3, 4, 2, 3, 2, 3, 3, 3, 2, 2, 3, 3, 4, 2, 3, 2, 3, 3, 3, 3, 6, 4, 2, 2, 3, 3, 2, 4, 3, 3, 2, 3, 6, 3, 6, 2, 3, 6, 4, 5, 2, 2, 5, 5, 2, 3, 2, 2, 7, 4, 3, 6, 8, 3, 5, 4, 3, 3, 6, 6, 10, 3, 5, 2, 6, 5, 6, 2, 7, 2, 2, 2, 10, 5, 10, 4, 7, 5, 6, 2, 6, 6, 2, 6, 2, 2, 4, 2, 3, 2, 2, 2, 2, 2, 2, 7, 6, 4, 5, 2, 10, 10, 2, 2, 2, 8, 3, 2, 4, 2, 2, 2, 2, 2, 9, 2, 2, 7, 6, 6, 6, 4, 7, 2, 6, 2, 12, 2, 2, 2, 2, 2, 12, 6, 2, 5, 2, 2, 4, 5, 6, 2, 2, 3, 3, 2, 2, 4, 2, 4, 2, 4, 2, 2, 3, 3, 5, 2, 2, 5, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 10, 2, 2, 9, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 7, 2, 3, 2, 2, 2, 4, 2, 4, 2, 4, 2, 10, 3, 4, 8, 4, 4, 2, 4, 2, 2, 4, 2, 5, 3, 2, 3, 2, 2, 6, 6, 6, 7, 2, 2, 2, 4, 2, 5, 4, 2, 3, 6, 5, 3, 7, 4, 3, 7, 6, 2, 7, 6, 7, 2, 4, 6, 2, 2, 6, 4, 2, 5, 7, 3, 5, 3, 5, 2, 4, 3, 2, 6, 2, 2, 7, 2, 9, 4, 6, 6, 2, 7, 2, 7, 2, 4, 2, 5, 3, 2, 9, 7, 2, 4, 4, 4, 5, 2, 2, 5, 3, 6, 5, 2, 2, 4, 2, 7, 7, 5, 4, 2, 3, 2, 6, 6, 2, 2, 8, 5, 2, 7, 8, 3, 2, 4, 2, 6, 2, 8, 2, 2, 5, 2, 5, 2, 4, 4, 3, 4, 4, 2, 2, 3, 6, 7, 2, 2, 4, 2, 4, 2, 4, 2, 2, 4, 2, 3, 7, 2, 8, 6, 2, 8, 5, 2, 4, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 3, 3, 5, 5, 2, 2, 2, 2, 6, 6, 2, 9, 2, 9, 2, 7, 3, 7, 2, 2, 4, 2, 2, 2, 4, 4, 5, 2, 4, 2, 3, 2, 2, 4, 4, 2, 2, 8, 3, 7, 2, 2, 2, 2, 8, 2, 6, 3, 2, 2, 5, 4, 2, 2, 2, 2, 5, 2, 5, 5, 2, 2, 2, 2, 2, 4, 3, 2, 2, 2, 5, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 5, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 3, 4, 2, 2, 2], "3": [14, 10]}
|
||||
1
outputs/cluster_life_8.json
Normal file
1
outputs/cluster_life_8.json
Normal file
@ -0,0 +1 @@
|
||||
{"2": [12, 13, 13, 14, 12, 12, 14, 11, 15, 12, 12, 11, 10, 10, 10, 12, 12, 14, 13, 10, 10, 12, 12, 12, 13, 14, 15, 15, 11, 15, 14, 13, 13, 13, 12, 12, 12, 12, 11, 11, 10, 10, 10, 10, 14, 14, 14, 14, 14, 14, 12, 13, 13, 13, 13, 10, 10, 10, 12, 12, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 11, 14, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 11, 12, 11, 10, 10, 10, 14, 15, 15, 11, 11, 11, 11, 11], "1": [3, 3, 2, 2, 2, 3, 3, 3, 5, 2, 4, 4, 3, 2, 2, 7, 5, 3, 2, 3, 2, 2, 2, 2, 2, 6, 5, 3, 4, 3, 4, 2, 3, 2, 3, 3, 3, 2, 2, 3, 3, 4, 2, 3, 2, 3, 3, 3, 3, 6, 4, 2, 2, 3, 3, 2, 4, 3, 3, 2, 3, 6, 3, 6, 2, 3, 6, 4, 5, 2, 2, 5, 5, 2, 3, 2, 2, 7, 4, 3, 6, 8, 3, 5, 4, 3, 3, 6, 6, 10, 3, 5, 2, 6, 5, 6, 2, 7, 2, 2, 2, 10, 5, 10, 4, 7, 5, 6, 2, 6, 6, 2, 6, 2, 2, 4, 2, 3, 2, 2, 2, 2, 2, 2, 7, 6, 4, 5, 2, 10, 10, 2, 2, 2, 8, 3, 2, 4, 2, 2, 2, 2, 2, 9, 2, 2, 7, 6, 6, 6, 4, 7, 2, 6, 2, 12, 2, 2, 2, 2, 2, 12, 6, 2, 5, 2, 2, 4, 5, 6, 2, 2, 3, 3, 2, 2, 9, 4, 9, 2, 4, 2, 4, 2, 2, 3, 3, 5, 2, 2, 5, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 10, 2, 2, 9, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 7, 2, 3, 2, 2, 2, 4, 2, 4, 2, 4, 2, 10, 3, 4, 8, 4, 4, 2, 4, 2, 2, 4, 2, 5, 3, 2, 3, 2, 2, 6, 6, 6, 7, 2, 2, 2, 4, 2, 5, 4, 2, 3, 6, 5, 3, 7, 4, 3, 7, 6, 2, 7, 6, 7, 2, 4, 6, 2, 2, 6, 4, 2, 5, 7, 3, 5, 3, 5, 2, 4, 3, 2, 6, 2, 2, 7, 2, 9, 4, 6, 6, 2, 7, 2, 7, 2, 4, 2, 5, 3, 2, 9, 7, 2, 4, 4, 4, 5, 2, 2, 5, 3, 6, 5, 2, 2, 4, 2, 7, 7, 5, 4, 2, 3, 2, 6, 6, 2, 2, 8, 5, 2, 7, 8, 3, 2, 4, 2, 6, 2, 8, 2, 2, 5, 2, 5, 2, 4, 4, 3, 4, 4, 2, 2, 3, 6, 7, 2, 2, 4, 2, 4, 2, 4, 2, 2, 4, 2, 3, 7, 2, 8, 6, 2, 8, 5, 2, 4, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 3, 3, 5, 5, 2, 2, 2, 2, 6, 6, 2, 9, 2, 9, 2, 7, 3, 7, 2, 2, 4, 2, 2, 2, 4, 4, 5, 2, 4, 2, 3, 2, 2, 4, 10, 4, 9, 2, 2, 8, 3, 7, 2, 2, 2, 2, 8, 2, 6, 3, 2, 2, 5, 4, 2, 2, 2, 2, 5, 2, 5, 5, 2, 2, 2, 2, 2, 4, 3, 2, 2, 2, 5, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 5, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 3, 4, 2, 2, 2], "3": [14, 10]}
|
||||
1
outputs/cluster_life_9.json
Normal file
1
outputs/cluster_life_9.json
Normal file
@ -0,0 +1 @@
|
||||
{"2": [12, 13, 13, 14, 12, 12, 14, 11, 15, 12, 12, 11, 10, 10, 12, 12, 14, 13, 10, 10, 12, 12, 12, 13, 14, 15, 15, 11, 15, 14, 13, 13, 13, 12, 12, 12, 12, 11, 11, 10, 10, 10, 10, 14, 14, 14, 14, 14, 14, 12, 13, 13, 13, 13, 10, 10, 10, 12, 12, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 14, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 11, 12, 11, 10, 10, 10, 14, 15, 15, 11, 11, 11, 11, 11], "1": [3, 3, 2, 2, 2, 3, 3, 3, 5, 2, 4, 4, 3, 2, 2, 7, 5, 3, 2, 3, 2, 2, 2, 2, 2, 6, 5, 3, 4, 3, 4, 2, 3, 2, 3, 3, 3, 2, 2, 3, 3, 4, 2, 3, 2, 3, 3, 3, 3, 6, 4, 2, 2, 3, 3, 2, 4, 3, 3, 2, 3, 6, 3, 6, 2, 3, 6, 4, 5, 2, 2, 5, 5, 2, 3, 2, 2, 7, 4, 3, 6, 8, 3, 5, 4, 3, 3, 6, 6, 10, 3, 5, 2, 6, 5, 6, 2, 7, 2, 2, 2, 10, 5, 10, 4, 7, 5, 6, 2, 6, 6, 2, 6, 2, 2, 4, 2, 3, 2, 2, 2, 2, 2, 2, 7, 6, 4, 5, 2, 10, 10, 2, 2, 2, 8, 3, 2, 4, 10, 2, 10, 2, 2, 2, 2, 9, 2, 2, 7, 6, 6, 6, 4, 7, 2, 6, 2, 12, 2, 2, 2, 2, 2, 12, 6, 2, 5, 2, 2, 4, 5, 6, 2, 2, 3, 3, 2, 2, 9, 4, 9, 2, 4, 2, 4, 2, 2, 3, 3, 5, 2, 2, 5, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 10, 2, 2, 9, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 7, 2, 3, 2, 2, 2, 4, 2, 4, 2, 4, 2, 10, 3, 4, 8, 4, 4, 2, 4, 2, 2, 4, 2, 5, 3, 2, 3, 2, 2, 6, 6, 6, 7, 2, 2, 2, 4, 2, 5, 4, 2, 3, 6, 5, 3, 7, 4, 3, 7, 6, 2, 7, 6, 7, 2, 4, 6, 2, 2, 6, 4, 2, 5, 7, 3, 5, 3, 5, 2, 4, 3, 2, 6, 2, 2, 7, 2, 9, 4, 6, 6, 2, 7, 2, 7, 2, 4, 2, 5, 3, 2, 9, 7, 2, 4, 4, 4, 5, 2, 2, 5, 3, 6, 5, 2, 2, 4, 2, 7, 7, 5, 4, 2, 3, 2, 6, 6, 2, 2, 8, 5, 2, 7, 8, 3, 2, 4, 2, 6, 2, 8, 2, 2, 5, 2, 5, 2, 4, 4, 3, 4, 4, 2, 2, 3, 6, 7, 2, 2, 4, 2, 4, 2, 4, 2, 2, 4, 2, 3, 7, 2, 8, 6, 2, 8, 5, 12, 2, 4, 4, 9, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 3, 3, 5, 5, 2, 2, 2, 2, 6, 6, 2, 9, 2, 9, 2, 7, 3, 7, 2, 2, 4, 2, 2, 2, 4, 4, 5, 2, 4, 2, 3, 2, 2, 4, 10, 4, 9, 2, 2, 8, 3, 7, 2, 2, 2, 2, 8, 2, 6, 3, 2, 2, 5, 4, 2, 2, 2, 2, 5, 2, 5, 5, 2, 2, 2, 2, 2, 4, 3, 2, 2, 2, 5, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 5, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 3, 4, 2, 2, 2], "3": [14, 10]}
|
||||
37
plot_cluster_life.py
Normal file
37
plot_cluster_life.py
Normal file
@ -0,0 +1,37 @@
|
||||
import json
|
||||
import sys
|
||||
from matplotlib import pyplot as plt
|
||||
from matplotlib.patches import Polygon
|
||||
import numpy as np
|
||||
|
||||
if __name__ == "__main__":
|
||||
cb = int(sys.argv[1])
|
||||
with open("outputs/cluster_life_%d.json" % cb) as f:
|
||||
raw = json.load(f)
|
||||
idx = []
|
||||
data = []
|
||||
if raw:
|
||||
for k in sorted(map(int, raw.keys())):
|
||||
idx.append(k)
|
||||
data.append(np.array(raw[str(k)]))
|
||||
fig = plt.figure(figsize=(3,3))
|
||||
ax = fig.gca()
|
||||
bp = ax.boxplot(data, labels=idx)#, boxprops=dict(facecolor='lightblue'))
|
||||
ax.plot(np.arange(1, len(idx)+1), [np.mean(r) for r in data], '^-', color='green', linewidth=1, alpha=0.8)
|
||||
ax.set_xlabel("Cluster size")
|
||||
ax.set_ylabel("Cluster life")
|
||||
# for patch in bp['boxes']:
|
||||
# patch.set_facecolor('lightblue')
|
||||
|
||||
for i in range(len(idx)):
|
||||
box = bp['boxes'][i]
|
||||
boxX = []
|
||||
boxY = []
|
||||
for j in range(5):
|
||||
boxX.append(box.get_xdata()[j])
|
||||
boxY.append(box.get_ydata()[j])
|
||||
boxCoords = list(zip(boxX, boxY))
|
||||
boxPolygon = Polygon(boxCoords, facecolor='lightblue')
|
||||
ax.add_patch(boxPolygon)
|
||||
fig.tight_layout()
|
||||
plt.show()
|
||||
Loading…
Reference in New Issue
Block a user