2016-06-15 8 views
0

私は、D3の助けを借りてインタラクティブワールドマップの下に現れる散布図を作ろうとしています。散布図には、ユーザーがワールドマップでクリックした国のデータが含まれています。問題は、ユーザーが別の国をクリックすると、前の国の散布図が消えることです。これは残念なことに、第2の散布図は最初の散布図の下に現れます。誰も私がこれをどのように修正できるか知っていますか?どんな助けでも大歓迎です。散布図は自分自身をコピーし続けます

私は散布に使用するコードの一部:あなたのSVGは再び明確になるようd3.selectAll("svg > *").remove();

function ScatterCorruption(dataset, title){ 

    var xValue = function(d) { return d.GDP;} 
    var yValue = function(d) { return d.Variable;} 

    // determine parameters 
    var margin = {top: 20, right: 20, bottom: 200, left: 70}, 
     width = 600 - margin.left - margin.right, 
     height = 500 - margin.top - margin.bottom; 

    // formatters for axis and labels 
    var currencyFormat = d3.format("0.2f"); 
    var decimalFormat = d3.format("0.2f"); 

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

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

    // determine x-axis 
    var xAxis = d3.svg.axis() 
    .scale(x) 
    .orient("bottom"); 

    // determine y-axis 
    var yAxis = d3.svg.axis() 
    .scale(y) 
    .orient("left"); 

    // make svg 
    var svg = d3.select("body").append("svg") 
    .attr("width", width + margin.left + margin.right) 
    .attr("height", height + margin.top + margin.bottom) 
    .append("g") 
    .attr("transform", "translate(" + margin.left + "," + margin.top + ")"); 

    // add the tooltip area to the webpage 
var tooltip = d3.select("body").append("div") 
    .attr("class", "tooltip") 
    .style("opacity", 0); 

    console.log(dataset) 

    // load in data 
    d3.tsv(dataset, function(error, data) { 
     if (error) throw error; 

     // convert data 
     data.forEach(function(d) { 

     d.GDP = +d.GDP; 
     d.Variable = +d.Variable; 
     }); 

答えて

0

新しい散布図を描画する前にこれを呼び出す必要があります。あるいは、d3.select("svg").remove();を実行してから、svgを再作成することもできます。

関連する問題