javascript - 如何在 d3.js 中将网格线移动到条形图后面?

标签 javascript d3.js

尝试创建一个简单的条形图也是如此。在玩轴,想在条形图后面画网格线。绘制了条形图和网格线,但网格线越过条形图。

JS:

var dataArray = [6,7,7.2,7.7,7.7,9.5,11.7,10.5,10.1];

var margin = {top: 80, right: 40, bottom: 0, left: 5};

var y = d3.scaleLinear()
          .domain([0,12])
          .range([300,0]);

var ticks = [0,2,4,6,8,10,12];
var gridlines = d3.axisLeft(y)
                  .tickValues(ticks)
                  .tickSize(-innerWidth);

var yAxis = d3.axisLeft(y)
              .tickValues(ticks)
              .tickSize(0);


var svg = d3.select("#barGraph1")
            .append("svg")
              .attr("height","100%")
              .attr("width","100%");

var barGroup = svg.append("g")
                        .attr("transform","translate("+margin.top+","+margin.left+")");
barGroup.selectAll("rect")
             .data(dataArray)
             .enter().append("rect")
                      .attr("height",function(d){return 300-y(d);})
                      .attr("width","35")
                      .attr("fill","red")
                      .attr("transform", "translate(30,0)")
                      .attr("x",function(d,i){ return 70*i;})
                      .attr("y",function(d){ return y(d);});

//gridlines
barGroup.append("g")
          .attr("class", "grid")
          .call(gridlines);

barGroup.append("g")
          .attr("class","axisY")
          .call(yAxis);

最佳答案

在添加条之前添加网格线,它们将出现在背景中。

关于javascript - 如何在 d3.js 中将网格线移动到条形图后面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48697167/

相关文章:

javascript - 动态字段的可靠下拉菜单

javascript - 以非线性方式调整一组相邻 div 的位置

javascript - D3.js多个GeoJSON对象

javascript - 如何向 WordPress 添加 jQuery slider ?

第二次调用时未定义 javascript 函数

javascript - 实时更新人力车图

javascript - d3.js中这两个代码块有什么区别

javascript - D3 v4 : Node position set to NaN

d3.js - 使用相同的d3js代码制作两个饼图

javascript - 使用查询小部件将 ActiveX 控件动态加载到页面上