0

I have a d3 app with one HTML number input. Everything works as I want it to for the moment, except that the visualization doesn't appear in the browser until I actually click the number input up or down.

I tried setting the input with a value:

<input type="number" min="0" max="100" step="1" value="5" id="nMinutes">

I also tried this workaround:

var hack = document.getElementById("nMinutes");
hack.value = "22";

to no avail.

I am following this example: http://www.d3noob.org/2014/04/using-html-inputs-with-d3js.html

Here's the fiddle: http://jsfiddle.net/btsusu6v/3/ Note: I am using d3.csv in my actual app:

var dataset2
    d3.csv("/assets/csv/mydata.csv", function(d) {
    dataset2=d;
})

This is my first venture into D3 (and javascript for that matter), so all general recommendations about the app (and not 100% specific to the posted question) are welcome and appreciated.

chiwangc
  • 3,566
  • 16
  • 26
  • 32
ajb
  • 692
  • 6
  • 16

2 Answers2

1

The visualization seems to get initialized on input.

d3.select("#nMinutes").on("input", function () {
    d3.select("svg").remove();
    buildhist(dataset2, +this.value);
});

So only once you click on the arrow does your code draw the graphs. If you were to put:

buildhist(dataset2, 1);

at the end of the JavaScript file, it should work as you intended.

  • this definitely works for the fiddle which I simplified too much as it turns out. I found the solution after reviewing this post:http://stackoverflow.com/questions/9491885/csv-to-array-in-d3-js I had to include the `buildhist(dataset2, 5)` inside the `d3.csv` function. Like so: `var dataset2 = d3.csv("/assets/csv/cleanTrips.csv", function(d) { dataset2=d; buildhist(dataset2, 5); });` – ajb Aug 26 '14 at 05:15
0

So I over-simplified the fiddle example, but realized from jstkim7's answer where the issue must lie. I found the solution after reviewing this post:csv to array in d3.js

I had to include the buildhist(dataset2, 5) inside the d3.csv function. Like so:

var dataset2 = d3.csv("/assets/csv/cleanTrips.csv", function(d) { dataset2=d; buildhist(dataset2, 5); });

Community
  • 1
  • 1
ajb
  • 692
  • 6
  • 16