 
  Librería JavaScript que usa datos para la creación y control de visualizaciones dinámicas e interactivas en navegadores web
      
        <table>
          <tr>
            <th>Partido</th><th>Votos</th>
          </tr>
          <tr>
            <td>PSOE</td><td>16%</td>
          </tr>
        </table>
      
    
  | Partido | Votos | 
|---|---|
| PSOE | 16% | 
      
        <svg width="100" height="100">
          <circle cx="50" cy="50" r="40" stroke="red" stroke-width="4" fill="#FF9999" />
          <text x="25" y="55" font-family="sans-serif" font-size="20px" fill="red">PSOE</text>
        </svg>
      
    
  
      
        <canvas id="myCanvas" width="100" height="100"></canvas>
        <script>
          var canvas = document.getElementById('myCanvas');
          var context = canvas.getContext('2d');
          context.beginPath();
          context.arc(50, 50, 40, 0, 2 * Math.PI, false);
          context.fillStyle = '#FF9999';
          context.fill();
          context.lineWidth = 4;
          context.strokeStyle = 'red';
          context.stroke();
          context.fillStyle = 'red';
          context.font = '20px sans-serif';
          context.fillText('PSOE', 25, 55);
        </script>
      </code>
    
  
  
  d3.select('#contenedor').selectAll("div")
    .data([10, 20, 30])
    .enter()
    .append('div')
    .text(function(d){return d;});
  
  
  
  
    
  
  d3.select('#contenedor').selectAll("div")
  
  
  
  .data([10, 20, 30])
  
  
  
  
  .enter()
  
  
  
  
     .append('div')
    .text(function(d){return d;});
  
  
  
  
  d3.select('#contenedor').selectAll("div")
    .data([10, 20, 30])
    .enter()
    .append('div')
    .text(function(d){return d;});
  
  
  
  
    
  svg.selectAll("circle")
    .data([32, 57, 112])
    .enter()
    .append("circle")
    .attr("cy", 30)
    .attr("cx", function(d, i) { return i * 50 + 10; })
    .attr("r", function(d) { return Math.sqrt(d); })
    .style("fill", "red");var scale = d3.scale.linear()
    .domain([30, 120])
    .range([10, 30]);
      
    svg.selectAll("circle")
    .data([32, 57, 112])
    .enter()
    .append("circle")
    .attr("cy", 30)
    .attr("cx", function(d, i) { return i * 50 + 10; })
    .attr("r", function(d) { return scale(d); })
    .style("fill", "red"); <svg height="210" width="400">
  <path d="M150 0 L75 100 L225 100 Z" fill="red"/>
</svg> topojson -p nombre,idprov --shapefile-encoding utf-8 -o provincias.json provincias_españa.shp