D3: Como atualizar dinamicamente um gráfico alterando a fonte do arquivo de dados?
Como atualizo os dados sob demanda alterando o arquivo que o d3 acessa? Com um clique, por exemplo, ele lia dados de um novo arquivo de dados e adicionava mais nós ao gráfico como AJAX.
Eu uso o d3.tsv para ler em data.tsv, um dos muitos arquivos do mesmo formato.
Fiz um gráfico simples para ilustrar minha pergunta. Desde já, obrigado.
<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>