In [21]:
import seaborn as sns
import json
import itertools

cats = ['A','B','C','D','E']
subcats = ['W','X','Y','Z']
combos = list(itertools.product(cats,subcats))

In [68]:
from numpy.random import weibull

Nsamples = 5000
k=4.5
x = weibull(k,(Nsamples,))*3 - random.rand(Nsamples,)*5 + 10

hist(x);

def rand_x():
    return x[rand()*len(x)]

print rand_x()
print [rand_x() for i in range(5)]


7.81263775218
[10.041709686358008, 13.212956209879756, 11.947218376770278, 10.607051539893599, 12.234022750102186]

In [84]:
#cats = ['A','B','C','D','E']
#subcats = ['W','X','Y','Z']
#combos = list(itertools.product(cats,subcats))

cc = [5,3,9,2,5]
ss = [4,1,2,10,3]
cs = list(itertools.product(cc,ss))

dd = {}
for combo, product in zip(combos,cs):
    dd[combo[0]+combo[1]] = product[0]*product[1]
    
print dd


{'DX': 90, 'CW': 30, 'CX': 9, 'DY': 27, 'EY': 20, 'EZ': 6, 'CZ': 9, 'CY': 36, 'BW': 15, 'DZ': 8, 'EX': 4, 'AW': 20, 'DW': 18, 'AY': 10, 'AX': 5, 'EW': 2, 'AZ': 50, 'BX': 12, 'BY': 3, 'BZ': 6}

In [86]:
tree = {}
tree['name'] = 'root'

children = []
for iic,cat in enumerate(cats):
    
    child = {}
    child['name'] = cat
    
    grandchildren = []
    for iis,subcat in enumerate(subcats):
        
        grandchild = {}
        grandchild['name'] = cat+subcat
        grandchild['magnitude'] = dd[cat+subcat]
        
        grandchildren.append(grandchild)
        
    child['children'] = grandchildren
    children.append(child)

tree['children'] = children

with open('slider_tree.json','w') as f:
    json.dump(tree,f,
              sort_keys=True,
              indent=4,
              separators=(',', ': '))
    
print "Done with json export."


Done with json export.

In [90]:
print json.dumps(tree,
          sort_keys=False,
          indent=4,
          separators=(',', ': '))


{
    "name": "root",
    "children": [
        {
            "name": "A",
            "children": [
                {
                    "magnitude": 20,
                    "name": "AW"
                },
                {
                    "magnitude": 5,
                    "name": "AX"
                },
                {
                    "magnitude": 10,
                    "name": "AY"
                },
                {
                    "magnitude": 50,
                    "name": "AZ"
                }
            ]
        },
        {
            "name": "B",
            "children": [
                {
                    "magnitude": 15,
                    "name": "BW"
                },
                {
                    "magnitude": 12,
                    "name": "BX"
                },
                {
                    "magnitude": 3,
                    "name": "BY"
                },
                {
                    "magnitude": 6,
                    "name": "BZ"
                }
            ]
        },
        {
            "name": "C",
            "children": [
                {
                    "magnitude": 30,
                    "name": "CW"
                },
                {
                    "magnitude": 9,
                    "name": "CX"
                },
                {
                    "magnitude": 36,
                    "name": "CY"
                },
                {
                    "magnitude": 9,
                    "name": "CZ"
                }
            ]
        },
        {
            "name": "D",
            "children": [
                {
                    "magnitude": 18,
                    "name": "DW"
                },
                {
                    "magnitude": 90,
                    "name": "DX"
                },
                {
                    "magnitude": 27,
                    "name": "DY"
                },
                {
                    "magnitude": 8,
                    "name": "DZ"
                }
            ]
        },
        {
            "name": "E",
            "children": [
                {
                    "magnitude": 2,
                    "name": "EW"
                },
                {
                    "magnitude": 4,
                    "name": "EX"
                },
                {
                    "magnitude": 20,
                    "name": "EY"
                },
                {
                    "magnitude": 6,
                    "name": "EZ"
                }
            ]
        }
    ]
}

In [ ]:


In [ ]: