示例#1
0
import geopandas as gp
import pandas as pd
import matplotlib.pyplot as plt
import sys
sys.path.append("src")
import aci_utils

# Selezione regione lombardia (codice 3)
data = gp.read_file("dataset/regioni/provincia.geojson").to_crs(epsg=3857)
lombardia = data[data['reg_istat_code_num'] == 3]

incidenti = pd.read_csv("dataset/incidenti/aci/autostrade/comuni_2018.csv")
incidenti_lombardia = incidenti[incidenti['REGIONE'] == 'Lombardia']

incidenti_lombardia = gp.GeoDataFrame(
    aci_utils.get_sum_of_fields(incidenti_lombardia, 'PROVINCIA', 'INC'))

incidenti_lombardia = lombardia.merge(incidenti_lombardia,
                                      left_on='prov_name',
                                      right_on='PROVINCIA')

from matplotlib.lines import Line2D

incidenti_lombardia.plot(column='INC', cmap='OrRd')
plt.legend([
    Line2D([], [], color='#84190f', linewidth=5),
    Line2D([], [], color='#ef5547', linewidth=5),
    Line2D([], [], color='#efd4ae', linewidth=5)
], [
    max(incidenti_lombardia['INC']),
    int(incidenti_lombardia['INC'].mean()),
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D
import sys
sys.path.append("src")
import aci_utils

field_incidenti = 'TOTALE'

path = "dataset/regioni/regioni.geojson"
regioni = gp.read_file(path)

data = pd.read_csv('dataset/incidenti/aci/autostrade/mesi_2018.csv') 
# Rimozione di valori nulli dal dataset e correzione del tipo di variabile, da string a int
data = data[data['TOTALE'] != '0,0'].astype({'TOTALE': int})

incidenti = aci_utils.get_sum_of_fields(data, 'REGIONE', field_incidenti)

incidenti.index = incidenti['REGIONE']
regioni.index = regioni['reg_name']

regioni = gp.GeoDataFrame(incidenti[field_incidenti], geometry=regioni['geometry'].transpose())

regioni.plot(column=field_incidenti, cmap='OrRd', legend=True)
plt.axis('off')
plt.legend([
    Line2D([],[],color='#a52317',linewidth=5), 
    Line2D([],[],color='#d6584d',linewidth=5), 
    Line2D([],[],color='#f7aca5',linewidth=5)
], [max(regioni[field_incidenti]), int(regioni[field_incidenti].mean()), min(regioni[field_incidenti])])
plt.show()
示例#3
0
# L'ordine utilizzato raggruppa le regioni del nord, centro e sud
order = [
    'Piemonte', 'Valle d\'Aosta', 'Liguria', 'Lombardia',
    'Trentino-Alto Adige', 'Veneto', 'Friuli-Venezia Giulia', 'Emilia Romagna',
    'Toscana', 'Umbria', 'Marche', 'Lazio', 'Abruzzo', 'Molise', 'Campania',
    'Puglia', 'Basilicata', 'Calabria', 'Sicilia', 'Sardegna'
]

data = pd.read_csv('dataset/incidenti/aci/autostrade/mesi_2018.csv')
data = data[data['TOTALE'] != '0,0'].astype({'TOTALE': int})

# Conteggio incidenti in mesi estivi
estate = pd.Series()
for mese in ['Giugno', 'Luglio', 'Agosto']:
    e = aci_utils.get_sum_of_fields(data, 'REGIONE', mese)
    e.index = e['REGIONE']
    e.reindex(order)
    e = e[mese]
    if mese == 'Giugno':
        estate = e
    else:
        estate += e

# Conteggio incidenti in mesi invernali
inverno = pd.Series()
for mese in ['Dicembre', 'Gennaio', 'Febbraio']:
    e = aci_utils.get_sum_of_fields(data, 'REGIONE', mese)
    e.index = e['REGIONE']
    e.reindex(order)
    e = e[mese]
import geopandas as gp
import pandas as pd
import matplotlib.pyplot as plt
import sys 
sys.path.append("src")
import aci_utils

# Selezione degli incidenti in regione lazio (codice 12)
data = gp.read_file("dataset/regioni/provincia.geojson").to_crs(epsg=3857)
lombardia = data[data['reg_istat_code_num'] == 12]

incidenti = pd.read_csv("dataset/incidenti/aci/autostrade/comuni_2018.csv")
incidenti_lombardia = incidenti[incidenti['REGIONE'] == 'Lazio']
incidenti_lombardia = gp.GeoDataFrame(aci_utils.get_sum_of_fields(incidenti_lombardia, 'PROVINCIA', 'INC'))
incidenti_lombardia = lombardia.merge(incidenti_lombardia, left_on='prov_name', right_on='PROVINCIA')

from matplotlib.lines import Line2D

inc = 'INC'

incidenti_lombardia.plot(column=inc, cmap='OrRd')
plt.legend([
    Line2D([],[],color='#84190f',linewidth=5), 
    Line2D([],[],color='#ef5547',linewidth=5), 
    Line2D([],[],color='#efd4ae',linewidth=5)
], [max(incidenti_lombardia[inc]), int(incidenti_lombardia[inc].mean()), min(incidenti_lombardia[inc])])
plt.axis('off')
plt.show()
示例#5
0
import geopandas as gp
import pandas as pd
import matplotlib.pyplot as plt
import sys
sys.path.append("src")
import aci_utils

# Selezione degli incidenti in regione lazio (codice 12)
data = gp.read_file("dataset/regioni/provincia.geojson").to_crs(epsg=3857)
lombardia = data[data['reg_istat_code_num'] == 12]

incidenti = pd.read_csv(
    "dataset/incidenti/aci/strade_provinciali/aci_2018.csv")
incidenti_lombardia = incidenti[incidenti['REGIONE'] == 'Lazio']
incidenti_lombardia = gp.GeoDataFrame(
    aci_utils.get_sum_of_fields(incidenti_lombardia, 'provincia', 'Inc'))
incidenti_lombardia = lombardia.merge(incidenti_lombardia,
                                      left_on='prov_name',
                                      right_on='provincia')

from matplotlib.lines import Line2D

inc = 'Inc'

incidenti_lombardia.plot(column=inc, cmap='OrRd')
plt.legend([
    Line2D([], [], color='#84190f', linewidth=5),
    Line2D([], [], color='#ef5547', linewidth=5),
    Line2D([], [], color='#efd4ae', linewidth=5)
], [
    max(incidenti_lombardia[inc]),
import geopandas as gp
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D
import sys
sys.path.append("src")
import aci_utils

# Selezione regione lombardia (codice 3)
data = gp.read_file("dataset/regioni/provincia.geojson").to_crs(epsg=3857)
lombardia = data[data['reg_istat_code_num'] == 3]

incidenti = pd.read_csv("dataset/incidenti/aci/strade_provinciali/aci_2018.csv")
incidenti_lombardia = incidenti[incidenti['REGIONE'] == 'Lombardia']

inc = 'Inc'
incidenti_lombardia = gp.GeoDataFrame(aci_utils.get_sum_of_fields(incidenti_lombardia, 'provincia', inc))
incidenti_lombardia = lombardia.merge(incidenti_lombardia, left_on='prov_name', right_on='provincia')


incidenti_lombardia.plot(column=inc, cmap='OrRd')
plt.legend([
    Line2D([],[],color='#84190f',linewidth=5), 
    Line2D([],[],color='#ef5547',linewidth=5), 
    Line2D([],[],color='#efd4ae',linewidth=5)
], [max(incidenti_lombardia[inc]), int(incidenti_lombardia[inc].mean()), min(incidenti_lombardia[inc])])
plt.axis('off')
plt.show()
import sys

sys.path.append("src")
import aci_utils

# L'ordine utilizzato raggruppa le regioni del nord, centro e sud
order = [
    'Piemonte', 'Valle d\'Aosta', 'Liguria', 'Lombardia',
    'Trentino-Alto Adige', 'Veneto', 'Friuli-Venezia Giulia', 'Emilia Romagna',
    'Toscana', 'Umbria', 'Marche', 'Lazio', 'Abruzzo', 'Molise', 'Campania',
    'Puglia', 'Basilicata', 'Calabria', 'Sicilia', 'Sardegna'
]

patenti = pd.read_csv("dataset/patenti/patenti_mit.csv")
incidenti = pd.read_csv("dataset/incidenti/aci/autostrade/mesi_2018.csv")
incidenti = aci_utils.get_sum_of_fields(incidenti, 'REGIONE', 'TOTALE')

# Correzione dell'ordine dei due dataset
patenti.index = patenti['REGIONE']
patenti = patenti.reindex(order)
patenti = patenti['NUMERO'] / patenti['NUMERO'].sum()

incidenti.index = incidenti['REGIONE']
incidenti = incidenti.reindex(order)
incidenti = incidenti['TOTALE'] / incidenti['TOTALE'].sum()

df = pd.DataFrame([patenti, incidenti], ['Patentati', 'Incidenti']).transpose()

# Colorazione del grafico
color_ls = ['#cec571'] * 8
color_ls = color_ls + ['#cec571'] * 4
示例#8
0
import geopandas as gp
import pandas as pd
import matplotlib.pyplot as plt
import sys
sys.path.append('src')
import heatmap as H
import aci_utils

path = "dataset/regioni/regioni.geojson"
regioni = gp.read_file(path)

# Per ogni anno, somma degli incidenti per regione, e sort in ordine alfabetico
incidenti_2011 = aci_utils.get_sum_of_fields(
    pd.read_csv('dataset/incidenti/aci/autostrade/mesi_2011.csv'), 'REGIONE',
    'TOTALE').sort_values('REGIONE', inplace=False, ascending=True)
incidenti_2012 = aci_utils.get_sum_of_fields(
    pd.read_csv('dataset/incidenti/aci/autostrade/mesi_2012.csv'), 'REGIONE',
    'TOTALE').sort_values('REGIONE', inplace=False, ascending=True)
incidenti_2013 = aci_utils.get_sum_of_fields(
    pd.read_csv('dataset/incidenti/aci/autostrade/mesi_2013.csv'), 'REGIONE',
    'TOTALE').sort_values('REGIONE', inplace=False, ascending=True)
incidenti_2014 = aci_utils.get_sum_of_fields(
    pd.read_csv('dataset/incidenti/aci/autostrade/mesi_2014.csv'), 'REGIONE',
    'TOTALE').sort_values('REGIONE', inplace=False, ascending=True)
incidenti_2015 = aci_utils.get_sum_of_fields(
    pd.read_csv('dataset/incidenti/aci/autostrade/mesi_2015.csv'), 'REGIONE',
    'TOTALE').sort_values('REGIONE', inplace=False, ascending=True)
incidenti_2016 = aci_utils.get_sum_of_fields(
    pd.read_csv('dataset/incidenti/aci/autostrade/mesi_2016.csv'), 'REGIONE',
    'TOTALE').sort_values('REGIONE', inplace=False, ascending=True)
incidenti_2017 = aci_utils.get_sum_of_fields(