sexta-feira, 5 de abril de 2013

Renda e IDH dos estados brasileiros e países sul-americanos

Resolvi juntar os dados dos países da América do Sul com os dados dos estados brasileiros. O resultado não foi inesperado, mas ainda assim a imagem ilustra muito bem como os estados brasileiros ocupam todo o espectro da renda e do desenvolvimento humano da América do Sul. Clique na imagem para ampliá-la.


O eixo vertical indica o IDH e o eixo horizontal indica a renda. As linhas cinzas indicam as médias para o continente.

Oito unidades federativas estão acima da renda média sul-americana: MT, PR, RS, ES, SC, RJ, SP, e DF. Além disso, 21 estão acima do IDH médio: todos menos PI, MA, AL, PB, CE, e PE.

As unidades federativas RJ, SP e DF estão acima da renda e do IDH de todos os países sul-americanos. Elas possuem mais de 57 milhões de habitantes, o que equivale aproximadamente à população do Chile e da Argentina somadas (são os dois países de melhor renda e IDH do continente).

Ainda mais interessante é o fato de que 6 estados têm IDH maior que o Chile (campeão sul-americano). Isso significa que quase 85 milhões de brasileiros vivem numa região com IDH superior ao IDH dos 17 milhões de chilenos.

No outro extremo, PI e MA são mais pobres que a Bolívia (em renda per capita), mas, ao menos, mantêm-se acima do IDH desse país.


<html>
<head>
<script src="processing-1.4.1.min.js"></script>
<script type="text/processing" data-processing-target="canvas">
  class Pais {
    int populacao, idh, renda, cor;

    Pais(int p, int i, int r, int c) {
      populacao=p;
      idh=i;
      renda=r;
      cor=c;
    }
  }

  HashMap paises=new HashMap();
  paises.put("Argentina", new Pais(40482000,797,17516,4));
  paises.put("Bolivia", new Pais(9863000,663,4789,1));
  paises.put("Brasil", new Pais(191241714,718,11769,0));
  paises.put("Chile", new Pais(16928873,805,17222,0));
  paises.put("Colombia", new Pais(45928970,710,10249,1));
  paises.put("Equador", new Pais(14573101,720,8492,1));
  paises.put("Guiana", new Pais(772298,633,7465,3));
  paises.put("Paraguai", new Pais(6831306,665,5413,3));
  paises.put("Peru", new Pais(29132013,725,10062,2));
  paises.put("Suriname", new Pais(472000,680,9475,3));
  paises.put("Uruguai", new Pais(3477780,783,15113,4));
  paises.put("Venezuela", new Pais(26814843,735,12568,2));

  int[] cores=new int[] {#98db11, #ff9900, #ffd42a, #ff0000, #5599ff};
  
  class Estado {
    int populacao, idh, renda, regiao;

    Estado(int p, int i, int r, int s) {
      populacao=p;
      idh=i;
      renda=r;
      regiao=s;
    }
  }

  HashMap estados=new HashMap();
  estados.put("AC", new Estado(707125,751,7041,0));
  estados.put("AL", new Estado(3093994,677,5164,1));
  estados.put("AP", new Estado(648553,780,8543,0));
  estados.put("AM", new Estado(3350773,780,11829,0));
  estados.put("BA", new Estado(13633969,742,6922,1));
  estados.put("CE", new Estado(8180087,723,5636,1));
  estados.put("DF", new Estado(2469489,874,37600,2));
  estados.put("ES", new Estado(3392775,802,15236,3));
  estados.put("GO", new Estado(5849105,800,9962,2));
  estados.put("MA", new Estado(6424340,683,4628,1));
  estados.put("MT", new Estado(3033991,796,12350,2));
  estados.put("MS", new Estado(2404256,802,10599,2));
  estados.put("MG", new Estado(19159260,800,11028,3));
  estados.put("PA", new Estado(7443904,755,6241,0));
  estados.put("PB", new Estado(3753633,718,5507,1));
  estados.put("PR", new Estado(10266737,820,13158,4));
  estados.put("PE", new Estado(8541250,718,6528,1));
  estados.put("PI", new Estado(3086448,703,4213,1));
  estados.put("RJ", new Estado(15180636,832,17695,3));
  estados.put("RN", new Estado(3121451,738,6754,1));
  estados.put("RS", new Estado(10576758,832,14310,4));
  estados.put("RO", new Estado(1535625,776,8391,0));
  estados.put("RR", new Estado(425398,750,9075,0));
  estados.put("SC", new Estado(6178603,840,15638,4));
  estados.put("SP", new Estado(39924091,833,19548,3));
  estados.put("SE", new Estado(2036277,742,7560,1));
  estados.put("TO", new Estado(1373551,756,7210,0));

  int[] regioes=new int[] {#98db11, #ff9900, #ffd42a, #ff0000, #5599ff};
  
  int W=2000;

  void setup() {
    size(W,W/2);
    background(255);
    noLoop();
  }

  void draw() {
    Iterator i = paises.entrySet().iterator();
    while (i.hasNext()) {
      Map.Entry me = (Map.Entry)i.next();
      String nome=me.getKey();
      Pais pais=me.getValue();
      float x=W*(pais.renda/40000);
      float y=W*(pais.idh/1000);
      float r=2+pais.populacao/1000000;
      fill(cores[pais.cor], 150);
      stroke(cores[pais.cor], 255);      
      ellipse(x, W-y, r, r);
      fill(0, 255);
      text(nome, x, W+4-y+r/2);
    }
    
    Iterator i2 = estados.entrySet().iterator();
    while (i2.hasNext()) {
      Map.Entry me = (Map.Entry)i2.next();
      String sigla=me.getKey();
      Estado estado=me.getValue();
      float x=W*(estado.renda/40000);
      float y=W*(estado.idh/1000);
      float r=2+estado.populacao/1000000;
      fill(regioes[estado.regiao], 100);
      stroke(regioes[estado.regiao], 255);      
      ellipse(x, W-y, r, r);
      fill(#000000, 255);
      text(sigla, x, W+4-y+r/2);
    }
    
    stroke(#AAAAAA, 255);
    float rendaMedia=(11962/40000)*W;
    line(rendaMedia, 0, rendaMedia, W);
    float idhMedio=W-(729/1000)*W;
    line (0, idhMedio, W, idhMedio);
    
    save("paises_estados.jpg");
  }
</script>
</head>
<body>
<canvas id="canvas">
</body>
</html>

2 comentários:

  1. Para áreas proporcionais aos cículos,
    em pais
    float a= pais.populacao/400;
    float r= sqrt(a)/(2*Math.PI);
    em estados
    float a= estado.populacao/400;
    float r= sqrt(a)/(2*Math.PI);

    ResponderExcluir
  2. Legal. Vou usar no próximo experimento.

    ResponderExcluir