Domanda

Sto cercando di scrivere un tutorial su D3 e ho trovato siti Web di coppia che possono aiutare ma con dettagli non sufficienti.

Ho il seguente codice che produce un grafico a barre:

<html>
<head>
<div id="mainGraph">
        </div>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<script type="text/javascript">

var t = 1, // start time (seconds since epoch)
    v = 0, // start value (subscribers)
    data = d3.range(33).map(next); // starting dataset

 function next() {
   return {
    time: ++t,
     value: v = ~~Math.max(10, Math.min(80, Math.exp(t)))
   };
}
setInterval(function() {
   data.shift();
   data.push(next());
 }, 1500);

  var w = 40,
      h = 100;

  var x = d3.scale.linear()
      .domain([0, 1])
      .range([0, w]);

  var y = d3.scale.linear()
      .domain([0, 100])
     .rangeRound([0, h]);

     var chart = d3.select("body")
     .append("svg:svg")
     .attr("class", "chart")
     .attr("width", w * data.length + 10)
     .attr("height", h);

     chart.selectAll("rect")
     .data(data)
    .enter().append("svg:rect")
     .attr("x", function(d, i) { return x(i) + 5; })
     .attr("y", function(d) { return h - y(d.value) + 5; })
     .attr("width", w)
     .attr("height", function(d) { return y(d.value); });

     chart.append("svg:line")
     .attr("x1", 0)
     .attr("x2", w * data.length)
     .attr("y1", h + 5)
     .attr("y2", h + 5)
     .attr("stroke", "#000");





    </script>           
    </body>
    </html>

La prima domanda è cosa fa funzione ()

La seconda domanda è quando provo a modificare l'insieme di dati, quindi sto cercando di mettere V in funzione di T come v = math.exp (t) questo non funziona e mi sta dando una linea nera solo anche se ho cambiato il Intervallo di max e min. Grazie.

È stato utile?

Soluzione

function() come in :

setInterval(function() { ... });

è chiamato funzione Lambda (o anonimo se si preferisce). Ciò significa che la funzione non ha nome e non può essere chiamata al di fuori della sua portata. In questo caso, il setInterval La funzione richiede una funzione come parametro, quindi inviamo nella definizione della funzione completa anziché solo un riferimento ad essa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top