-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcolora-mappa.py
31 lines (27 loc) · 1.11 KB
/
colora-mappa.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import json
from lxml import etree
import pandas as pd
svg_img = etree.parse("svg/italia_regioni-province-comuni.svg")
database = {}
with open("dataset/dati-azzardo.json") as f:
database = json.load(f)
database = pd.DataFrame.from_dict(database, orient="index")
database["RACCOLTA_TOT_PROCAPITE_2016"] = database["RACCOLTA_TOT_PROCAPITE_2016"].astype(float)
mean_tm = database["RACCOLTA_TOT_PROCAPITE_2016"].mean()
std_tm = database["RACCOLTA_TOT_PROCAPITE_2016"].std()
missing_municip = 0
min_tm = mean_tm - std_tm
max_tm = mean_tm + std_tm
for id_istat,row in database["RACCOLTA_TOT_PROCAPITE_2016"].iteritems():
value = (row - min_tm)/(max_tm-min_tm)
value = value if value < 1 else 1
value = value if value > 0 else 0
value = int(value*255)
try:
element = svg_img.xpath("//*[contains(@id,'com%s')]"%(id_istat,))[0]
element.attrib["style"]="fill:#{:02X}00{:02X};stroke-width:0;".format(value,value,value)
except:
print("Comune %s non trovato"%(id_istat,))
missing_municip += 1
print("%d comuni non sono stati trovati"%(missing_municip,))
svg_img.write("ciao.svg")