Sto tentando di aggiornare/modificare i dati per i rettangoli in base alla selezione della casella a discesa. Ho provato varie cose e non capisco abbastanza bene la funzione di invio D3. Grato se qualcuno potesse aggiornare questo codice in modo che possa vedere come funziona in pratica. Ho 3 set di dati con valori e sto semplicemente cercando di aggiornare le dimensioni del rettangolo in base a ciò che l'utente seleziona nella barra dei menu.D3 Come modificare il set di dati in base alla selezione della casella a discesa
molte grazie,
<!DOCTYPE html>
<html>
<head>
<title>Menu Bar</title>
<script type="text/javascript" src="d3/d3.js">
</script>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
</head>
<body>
<select id = "opts">
<option value="ds1">data1</option>
<option value="ds2">data2</option>
<option value="ds3">data3</option>
<!-- and so on... -->
</select>
<script type="text/javascript">
var w = 100,
h = 100
;
var color = d3.scale.ordinal()
.range(["#1459D9", "#daa520"]);
var ds1 = [[{x:0,y:12}],[{x:0,y:45}]];
var ds2 = [[{x:0,y:72}],[{x:0,y:28}]];
var ds3 = [[{x:0,y:82}],[{x:0,y:18}]];
var canvas = d3.select("body")
.append("svg")
.attr("width",100)
.attr("height",100)
;
var appending = canvas.selectAll("body")
.data(ds2) ///trying to make this selection dynamic based on menubar selection
.enter()
.append("g")
.style("fill", function(d,i){return color(i);})
;
appending.selectAll("shape")
.data(function (d) {return d;})
.enter()
.append("rect")
.attr("x",10)
.attr("y",10)
.attr("width",function (d) {return d.y;})
.attr("height",19)
;
</script>
</body>
</html>
+1 per la risposta e violino, grazie – nish
non potevo correre il mio codice fino a quando ho usato l'eval (d3.select (questo) .property ('valore')) invece di d3.select (questo). costo dell'immobile'). Grazie per la risposta! –