javascript - Format of data array in D3 bar chart, array of values into an array of objects -


i have simple interactive bar chart. mike bostock's http://bl.ocks.org/mbostock/3885304 tooltip on bar.

the 2d array elements have has format "word" string, frequency number in...

good,5 hello,4 bye,2 aloha,1 ...

i tried concatenating "letter:" , "frequency:" 2d array elements follow code. not working anyway. string concatenate casting frequency number string type. @ sure how work this.

is there way concatenate string number in array elements preserve type, of number?

or there way load data better current array array of objects??

i working files in future. arrays suggestions...

<pre> <!doctype html> <html> <head>   <meta http-equiv="content-type" content="text/html; charset=utf-8">   <title> - bar chart demo</title>    <script type='text/javascript' src='http://d3js.org/d3.v3.min.js'></script>    <style type='text/css'>     body {   font: 10px sans-serif; }  .axis path, .axis line {   fill: none;   stroke: #000;   shape-rendering: crispedges; }  .bar {   fill: orange; }  .bar:hover {   fill: orangered ; }  .x.axis path {   display: none; }  .d3-tip {   line-height: 1;   font-weight: bold;   padding: 12px;   background: rgba(0, 0, 0, 0.8);   color: #fff;   border-radius: 2px; }  /* creates small triangle extender tooltip */ .d3-tip:after {   box-sizing: border-box;   display: inline;   font-size: 10px;   width: 100%;   line-height: 1;   color: rgba(0, 0, 0, 0.8);   content: "\25bc";   position: absolute;   text-align: center; }  /* style northward tooltips differently */ .d3-tip.n:after {   margin: -1px 0 0 0;   top: 100%;   left: 0; }   </style>     <script type='text/javascript'>//<![cdata[ window.onload=function(){  }//]]>   </script>  </head> <body>   <script src="http://labratrevenge.com/d3-tip/javascripts/d3.tip.v0.6.3.js"></script> <script>  var margin = {top: 40, right: 20, bottom: 30, left: 40},     width = 960 - margin.left - margin.right,     height = 500 - margin.top - margin.bottom;  var formatpercent = d3.format(".0%");  var x = d3.scale.ordinal()     .rangeroundbands([0, width], .1);  var y = d3.scale.linear()     .range([height, 0]);  var xaxis = d3.svg.axis()     .scale(x)     .orient("bottom");  var yaxis = d3.svg.axis()     .scale(y)     .orient("left")     .tickformat(formatpercent);  var tip = d3.tip()   .attr('class', 'd3-tip')   .offset([-10, 0])   .html(function(d) {     return "<strong>frequency:</strong> <span style='color:red'>" + d.frequency + "</span>";   })  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 + ")");  svg.call(tip);  // new data variable. var data = [   {letter: "a", frequency: .08167},   {letter: "b", frequency: .01492},   {letter: "c", frequency: .02780},   {letter: "d", frequency: .04253},   {letter: "e", frequency: .12702},   {letter: "f", frequency: .02288},   {letter: "g", frequency: .02022},   {letter: "h", frequency: .06094},   {letter: "i", frequency: .06973},   {letter: "j", frequency: .00153},   {letter: "k", frequency: .00747},   {letter: "l", frequency: .04025},   {letter: "m", frequency: .02517},   {letter: "n", frequency: .06749},   {letter: "o", frequency: .07507},   {letter: "p", frequency: .01929},   {letter: "q", frequency: .00098},   {letter: "r", frequency: .05987},   {letter: "s", frequency: .06333},   {letter: "t", frequency: .09056},   {letter: "u", frequency: .02758},   {letter: "v", frequency: .01037},   {letter: "w", frequency: .02465},   {letter: "x", frequency: .00150},   {letter: "y", frequency: .01971},   {letter: "z", frequency: .00074} ];  // following code contained in callback function. x.domain(data.map(function(d) { return d.letter; })); y.domain([0, d3.max(data, function(d) { return d.frequency; })]);  svg.append("g")     .attr("class", "x axis")     .attr("transform", "translate(0," + height + ")")     .call(xaxis);  svg.append("g")     .attr("class", "y axis")     .call(yaxis)   .append("text")     .attr("transform", "rotate(-90)")     .attr("y", 6)     .attr("dy", ".71em")     .style("text-anchor", "end")     .text("frequency");  svg.selectall(".bar")     .data(data)   .enter().append("rect")     .attr("class", "bar")     .attr("x", function(d) { return x(d.letter); })     .attr("width", x.rangeband())     .attr("y", function(d) { return y(d.frequency); })     .attr("height", function(d) { return height - y(d.frequency); })     .on('mouseover', tip.show)     .on('mouseout', tip.hide)  function type(d) {   d.frequency = +d.frequency;   return d; }  </script>  </body>  </html>  </pre> 

this section has changed array format:

// new data variable. var data = [   {letter: "a", frequency: .08167},   {letter: "b", frequency: .01492},   {letter: "c", frequency: .02780},   {letter: "d", frequency: .04253},   {letter: "e", frequency: .12702},   {letter: "f", frequency: .02288},   {letter: "g", frequency: .02022},   {letter: "h", frequency: .06094},   {letter: "i", frequency: .06973},   {letter: "j", frequency: .00153},   {letter: "k", frequency: .00747},   {letter: "l", frequency: .04025},   {letter: "m", frequency: .02517},   {letter: "n", frequency: .06749},   {letter: "o", frequency: .07507},   {letter: "p", frequency: .01929},   {letter: "q", frequency: .00098},   {letter: "r", frequency: .05987},   {letter: "s", frequency: .06333},   {letter: "t", frequency: .09056},   {letter: "u", frequency: .02758},   {letter: "v", frequency: .01037},   {letter: "w", frequency: .02465},   {letter: "x", frequency: .00150},   {letter: "y", frequency: .01971},   {letter: "z", frequency: .00074} ];  // following code contained in callback function. x.domain(data.map(function(d) { return d.letter; })); y.domain([0, d3.max(data, function(d) { return d.frequency; })]); 


Comments

Popular posts from this blog

php - Admin SDK -- get information about the group -

dns - How To Use Custom Nameserver On Free Cloudflare? -

Python Error - TypeError: input expected at most 1 arguments, got 3 -