can any help me iam new to d3 js

35 views
Skip to first unread message

cRaZy cRuZz

unread,
Feb 1, 2018, 5:18:08 AM2/1/18
to d3-js
This is my json data
[ {
  "version" : "v1",
  "timestamp" : "2018-01-23T05:02:00.000Z",
  "event" : {
    "assetId" : "AS-111",
    "organization" : "Reliance",
    "Average" : 530.4538461538461,
    "Sum" : 68959.0,
    "tag" : "Pressureeee",
    "events" : 130
  }
}, {
  "version" : "v1",
  "timestamp" : "2018-01-23T05:02:00.000Z",
  "event" : {
    "assetId" : "AS-111",
    "organization" : "Reliance",
    "Average" : 464.51666666666665,
    "Sum" : 55742.0,
    "tag" : "Temperature",
    "events" : 120
  }
}, {
  "version" : "v1",
  "timestamp" : "2018-01-23T05:03:00.000Z",
  "event" : {
    "assetId" : "AS-111",
    "organization" : "Reliance",
    "Average" : 525.3898305084746,
    "Sum" : 154990.0,
    "tag" : "Pressureeee",
    "events" : 295
  }
}, {
  "version" : "v1",
  "timestamp" : "2018-01-23T05:03:00.000Z",
  "event" : {
    "assetId" : "AS-111",
    "organization" : "Reliance",
    "Average" : 503.4406779661017,
    "Sum" : 148515.0,
    "tag" : "Temperature",
    "events" : 295
  }
}]



i am trying to iterate like this. getting null values after 1st iteration can anybody help me.

 
function graphs(data) {
    document.getElementById("demo").innerHTML = "Getting Graphs....!!!";
  
    data.forEach(function (d) {
        d.version = +d.version;
        d.timestamp = +d.timestamp;
            d.assetId = +d.assetId;
            d.organization = +d.organization;
            d.Average = +d.Average;
            d.Sum = +d.Sum;
            d.tag = +d.tag;
            d.events = +d.events;
        document.getElementById("demo").innerHTML = "Here the graphs";
    
        document.getElementById("demo").innerHTML = JSON.stringify(d);
        });

Erik Stel

unread,
Feb 1, 2018, 2:46:29 PM2/1/18
to d3-js
Hi,

Not sure what you mean by 'after 1st iteration'. You reference some values like 'assetId' and 'organisation' as fields of 'd'. These fields are however part of 'event' and should therefore be referenced as 'd.event.assetId' and 'd.event.organization' (*). Furthermore, you are copying all fields using the pattern 'd.<field> = +d.<field>' which is a way to convert string values into numeric values. Fields like 'version' or 'timestamp' do not contain numeric values, so they will not convert (and probably result in a 'NaN'-value, meaning Not a Number). Only convert numeric fields like 'Average', 'Sum' and 'events' like this. You can convert 'timestamp' into a real Date object using 'd.timestamp = new Date(d.timestamp);'.

(*) If you want to use or render the Average and Sum by joining this data onto an (SVG/DOM) element, remember that these should be referenced as 'd.event.Average'.

Does this help getting the right values from your JSON data?

Cheers,
Erik

cRaZy cRuZz

unread,
Feb 2, 2018, 4:41:05 AM2/2/18
to d3-js
Thank you very much Erik Stel
Reply all
Reply to author
Forward
0 new messages