Wrong appearance of bar positions - d3.js

I am trying to create a bar chart with d3.js in angular.js - ionic app. Incorrect bar location. Here is a screenshot

Incorrect positioning of bars

But I need to be like this

enter image description here

Here is the javascript code

var margin = {top: 20, right: 20, bottom: 30, left: 40},
   width = $("#chart_div").width() - margin.left - margin.right,
    height = $("#chart_div").height() - margin.top - margin.bottom;

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")
    .ticks(10);

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 + ")");

var data = [{"scenario":"Expected","hours":32},{"scenario":"Actual","hours":16}];

  x.domain(data.map(function(d) { return d.scenario; }));
  y.domain([0, d3.max(data, function(d) { return d.hours; })]);

  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("Hours");

  svg.selectAll(".bar")
      .data(data)
    .enter().append("rect")
      .attr("class", "bar")
      .attr("x", function(d) { return x(d.scenario); })
      .attr("width", x.rangeBand())
      .attr("y", function(d) { return y(d.hours); })
      .attr("height", function(d) { return height - y(d.hours); });

function type(d) {
  d.hours = +d.hours;
  return d;
}

      

The generated script is in d3 chart Please help me

+3
jquery angularjs ionic-framework d3.js


source to share


2 answers


When I faced this same problem, I realized that "rect" was not taking the correct width and height dimensions.



Try changing the class of the bar (change the name), which is probably in conflict with another existing one in your css library.

+1


source to share


I had similar problems. It turned out that the class .bar

I was using was conflicting with some ionic css Renaming it to .bar1

helped.



0


source to share







All Articles
Loading...
X
Show
Funny
Dev
Pics