D3: ¿Cómo actualizar dinámicamente un gráfico cambiando la fuente del archivo de datos?

¿Cómo actualizo los datos a pedido cambiando los archivos a los que accede d3? Con un clic, por ejemplo, leería datos de un nuevo archivo de datos y agregaría más nodos al gráfico como AJAX.

Yo uso d3.tsv para leer en data.tsv, uno de los muchos archivos del mismo formato.

Hice un gráfico simple para ilustrar mi pregunta. Gracias por adelantado.

<script src="http://d3js.org/d3.v3.min.js"></script>
<script>
    var width = 400,
        height = 200;

    var x = d3.scale.linear().range([0, width]),
        y = d3.scale.linear().range([height, 0]);

    var svg = d3.select("body")
      .append("svg")
        .attr("width", width)
        .attr("height", height);

    d3.tsv("data.tsv", function(error, data) { 
        if (error) console.warn(error);
        x.domain(d3.extent(data, function(q) {return q.xCoord;}));
        y.domain(d3.extent(data, function(q) {return q.yCoord;}));

        svg.selectAll(".dot")
            .data(data)
            .enter().append("circle")
                .attr("r", 10)
                .attr("cx", function(d) { return x(d.xCoord); })
                .attr("cy", function(d) { return y(d.yCoord); })
    }); 
</script>
<a href="#">update the graph</a>

Respuestas a la pregunta(1)

Su respuesta a la pregunta