Example #1
0
    def evolucao_sumulas(self, view=True):
        """
        plota series temporais de citações por esfera
        """
        sumulas_ano = self.session.query(
            "llei", "year", 'sumcits'
        ).from_statement(
            "select LEFT(lei,3) as llei, DATE_FORMAT(decisao.data_dec,'%Y') AS year, count(*) as sumcits FROM lei_decisao JOIN decisao ON decisao.id = lei_decisao.decisao_id WHERE lei_decisao.lei like 'SUM%' AND year(decisao.data_dec) > 1900 GROUP BY year(decisao.data_dec)"
        ).all()
        #        print sumulas_ano
        #        sumulas = self.session.query(Lei.esfera, Lei.id,Lei.lei, Decisao.data_dec).join((Decisao, Decisao.id==Lei.decisao_id)).filter(Lei.esfera=='LEG-FED').filter(Lei.lei.like('SUM%')).all()
        leg_fed = self.session.query(
            "esfera", "year", 'sumcits'
        ).from_statement(
            "select esfera, DATE_FORMAT(decisao.data_dec,'%Y') AS year, count(*) as sumcits FROM lei_decisao JOIN decisao ON decisao.id = lei_decisao.decisao_id WHERE year(decisao.data_dec) > 1900 GROUP BY year(decisao.data_dec)"
        ).all()
        #        leg_fed = self.session.query(Lei.esfera, Decisao.data_dec).join((Decisao, Decisao.id==Lei.decisao_id)).filter(Lei.esfera=='LEG-FED').all()
        # Contagem de sumulas por ano
        #        print leg_fed
        anodict = dict([(int(l[1]), l[2]) for l in sumulas_ano if l[1]])

        # Contagem de leg-fed por ano
        lfanodict = dict([(int(l[1]), l[2]) for l in leg_fed if l[1]])

        # Calcula proporcao
        #        for a in anodict.keys():
        #            anodict[a] /=float(lfanodict[a])

        t = anodict.keys()
        t.sort()
        series = {}
        series['Sumula'] = [anodict[ano] for ano in t]

        def visualiza():
            P.figure()
            d = np.array(series.values()).T
            P.plot(t, d, ':o')
            P.title(u'Citações a súmulas')
            P.xlabel('ano')
            P.ylabel(u'fração do total de citações a legislação federal')
            P.legend(series.keys())


#            P.gca().set_yscale('log')

        html = annot_TS('Decisoes referenciando sumulas',
                        [datetime.date(i, 12, 31) for i in t], series.values(),
                        series.keys())
        with open('evo_sumulas.html', 'w') as f:
            f.write(html)
        if view:
            visualiza()
Example #2
0
    def serie_esferas(self, view=True):
        """
        plota series temporais de citações por esfera
        """
        anodict = defaultdict(lambda: {})
        leis = self.session.query("esfera", "year", 'sumcits').from_statement(
            "select esfera, DATE_FORMAT(decisao.data_dec,'%Y') AS year, count(*) as sumcits FROM lei_decisao JOIN decisao ON decisao.id = lei_decisao.decisao_id GROUP BY year(decisao.data_dec), esfera"
        ).all()
        #        print leis
        for l in leis:
            if (not l[1]) or int(l[1]) < 1900:
                continue  #quando ano não esta especificado, i.e., ==None
            anodict[int(l[1])][l[0]] = l[2]
#        leis = self.session.query(Lei.esfera, Lei.id,Lei.lei,  Decisao.data_dec).join((Decisao, Decisao.id==Lei.decisao_id)).all()
        esferas = []
        for d in anodict.itervalues():
            esferas += d.keys()
        esferas = list(set(esferas))

        t = anodict.keys()
        t.sort()
        series = dict([(e, []) for e in esferas])
        for e in esferas:
            for y in t:
                if e in anodict[y]:
                    series[e].append(anodict[y][e])
                else:
                    series[e].append(np.nan)

        def visualiza():
            d = np.array(series.values()).T
            P.figure()
            P.plot(t, d, ':o')
            P.legend(series.keys(), loc=0)
            P.title(u'Citações a Legislação')
            P.xlabel('ano')
            P.ylabel(u'total de citações')
            P.gca().set_yscale('log')
#            P.gca().set_yscale('log')

        html = annot_TS('Serie de citacoes',
                        [datetime.date(i, 12, 31) for i in t], series.values(),
                        series.keys())
        with open('esf_series.html', 'w') as f:
            f.write(html)
        if view:
            visualiza()
Example #3
0
    def serie_esferas(self, view=True):
        """
        plota series temporais de citações por esfera
        """
        anodict = defaultdict(lambda:{})
        leis = self.session.query("esfera", "year", 'sumcits').from_statement("select esfera, DATE_FORMAT(decisao.data_dec,'%Y') AS year, count(*) as sumcits FROM lei_decisao JOIN decisao ON decisao.id = lei_decisao.decisao_id GROUP BY year(decisao.data_dec), esfera").all()
#        print leis
        for l in leis:
            if (not l[1]) or int(l[1])<1900:
                continue #quando ano não esta especificado, i.e., ==None
            anodict[int(l[1])][l[0]]= l[2]
#        leis = self.session.query(Lei.esfera, Lei.id,Lei.lei,  Decisao.data_dec).join((Decisao, Decisao.id==Lei.decisao_id)).all()
        esferas = []
        for d in anodict.itervalues():
            esferas += d.keys()
        esferas = list(set(esferas))

        t = anodict.keys()
        t.sort()
        series = dict([(e, []) for e in esferas])
        for e in esferas:
            for y in t:
                if e in anodict[y]:
                    series[e].append(anodict[y][e])
                else:
                    series[e].append(np.nan)
        def visualiza():
            d = np.array(series.values()).T
            P.figure()
            P.plot(t, d, ':o')
            P.legend(series.keys(),  loc=0)
            P.title(u'Citações a Legislação')
            P.xlabel('ano')
            P.ylabel(u'total de citações')
            P.gca().set_yscale('log')
#            P.gca().set_yscale('log')
        html = annot_TS('Serie de citacoes', [datetime.date(i, 12, 31) for i in t], series.values(), series.keys())
        with open('esf_series.html', 'w') as f:
            f.write(html)
        if view:
            visualiza()
Example #4
0
    def evolucao_sumulas(self, view=True):
        """
        plota series temporais de citações por esfera
        """
        sumulas_ano = self.session.query("llei", "year", 'sumcits').from_statement("select LEFT(lei,3) as llei, DATE_FORMAT(decisao.data_dec,'%Y') AS year, count(*) as sumcits FROM lei_decisao JOIN decisao ON decisao.id = lei_decisao.decisao_id WHERE lei_decisao.lei like 'SUM%' AND year(decisao.data_dec) > 1900 GROUP BY year(decisao.data_dec)").all()
#        print sumulas_ano
#        sumulas = self.session.query(Lei.esfera, Lei.id,Lei.lei, Decisao.data_dec).join((Decisao, Decisao.id==Lei.decisao_id)).filter(Lei.esfera=='LEG-FED').filter(Lei.lei.like('SUM%')).all()
        leg_fed = self.session.query("esfera", "year", 'sumcits').from_statement("select esfera, DATE_FORMAT(decisao.data_dec,'%Y') AS year, count(*) as sumcits FROM lei_decisao JOIN decisao ON decisao.id = lei_decisao.decisao_id WHERE year(decisao.data_dec) > 1900 GROUP BY year(decisao.data_dec)").all()
#        leg_fed = self.session.query(Lei.esfera, Decisao.data_dec).join((Decisao, Decisao.id==Lei.decisao_id)).filter(Lei.esfera=='LEG-FED').all()
        # Contagem de sumulas por ano
#        print leg_fed
        anodict = dict([(int(l[1]), l[2]) for l in sumulas_ano if l[1]])

        # Contagem de leg-fed por ano
        lfanodict = dict([(int(l[1]), l[2]) for l in leg_fed if l[1]])
            
        # Calcula proporcao
#        for a in anodict.keys():
#            anodict[a] /=float(lfanodict[a])

        t = anodict.keys()
        t.sort()
        series={}
        series['Sumula'] = [anodict[ano] for ano in t]
        def visualiza():
            P.figure()
            d = np.array(series.values()).T
            P.plot(t, d, ':o')
            P.title(u'Citações a súmulas')
            P.xlabel('ano')
            P.ylabel(u'fração do total de citações a legislação federal')
            P.legend(series.keys())
#            P.gca().set_yscale('log')
        html = annot_TS('Decisoes referenciando sumulas', [datetime.date(i, 12, 31) for i in t], series.values(), series.keys())
        with open('evo_sumulas.html', 'w') as f:
            f.write(html)
        if view:
            visualiza()