PrInf20: Análisis de las infraestructuras de los países del mundo

De MateWiki
Saltar a: navegación, buscar
Práctica de Informática
Análisis de las infraestructuras de los países del mundo
Práctica anterior Siguiente práctica
Este artículo es un guión de prácticas de Informática


Warning.png Este artículo está en versión beta. El autor de este artículo no lo ha terminado todavía, por favor no lo edites hasta que elimine este mensaje.

El Banco Mundial realiza Archivo:Banco mundial.csv[1] y los pone a disposición de manera pública para realizar análisis estadísticos. En esta práctica vamos a usar estos datos para entrenar cómo leer información del disco duro. Vamos a representar gráficamente la relación entre dos indicadores para todos los países del mundo.

Archivo:Banco mundial.csv

1 Ejemplo

Pasajeros transportados por avión en España, evolución temporal

%% Lee datos del Banco Mundial
f = fopen('banco_mundial.csv', 'r')

% Ignoramos la primera fila
fgets(f);

ind1 = 'IS.AIR.PSGR';
p1 = 'ESP';
while ~feof(f)
  pais = fscanf(f,'%s',1);    
  disp(pais);
  indicador = fscanf(f,'%s',1);
  fprintf(' ** %s\n', indicador);
  d = fscanf(f,'%f',53);  
  if strcmp(p1, pais) && strcmp(ind1, indicador)
    disp('Found!')
    break;
  end
end


y = 1960:2012;
plot(y(d>0), d(d>0), 'LineWidth', 5);

fclose(f);


2 Ejemplo

Un indicador frente a otro

%% Lee datos del Banco Mundial
f = fopen('banco_mundial.csv', 'r');

% Ignoramos la primera fila
fgets(f);
k = 1;
ind1 = 'IS.AIR.PSGR';
ind2 = 'EG.ELC.PROD.KH';
p = {};
x = [];
y = [];
k = 1;
while ~feof(f)
  pais = fscanf(f,'%s',1);    
  disp(pais);
  indicador = fscanf(f,'%s',1);

  d = fscanf(f,'%f',53);
  d = d';
  n = 53;
  if length(d) ~= 53
    disp(length(d));
    disp(indicador);
    break
  end
  
  if strcmp(indicador, ind1)
    p(k) = pais;
    k = k + 1;
    n = length(d);
    if n>3
      x = [x d(n-3)];
    end
  end
  
  if strcmp(indicador, ind2)
    n = length(d);
    if n>3
      y = [y d(n-3)];
    end
  end
end

xp = x(x>0 & y>0);
yp = y(x>0 & y>0);
pp = p(x>0 & y>0);
loglog(xp,yp,'.r','LineWidth',4);
text(xp+50,yp+50,pp)

fclose(f);


3 Referencias

  1. Datos sobre infraesctructuras del Banco Mundial