Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript D3网格线和刻度值问题_Javascript_Css_D3.js - Fatal编程技术网

Javascript D3网格线和刻度值问题

Javascript D3网格线和刻度值问题,javascript,css,d3.js,Javascript,Css,D3.js,我有一个用D3制作的堆积面积图。我在实施过程中面临两个问题 1) 我只想在y轴上显示可选的记号值。例如,在我的实现中,y轴值是0、20、40、60、80、100等等。但我想显示像0、40、80、120这样的值,但也要保留相应的网格线。我只想删除可选的记号值,而不删除y轴网格线 2) 我想格式化y轴,使其始终具有上方的y轴网格线。因此,在我的实现中,我希望在180值上方有一条网格线 var保证金={ 前20名, 右:30,, 底数:30, 左:40 }, 宽度=960-margin.left-m

我有一个用D3制作的堆积面积图。我在实施过程中面临两个问题

1) 我只想在y轴上显示可选的记号值。例如,在我的实现中,y轴值是
0、20、40、60、80、100
等等。但我想显示像
0、40、80、120这样的值,但也要保留相应的网格线。我只想删除可选的记号值,而不删除y轴网格线

2) 我想格式化y轴,使其始终具有上方的y轴网格线。因此,在我的实现中,我希望在
180
值上方有一条网格线

var保证金={
前20名,
右:30,,
底数:30,
左:40
},
宽度=960-margin.left-margin.right,
高度=500-margin.top-margin.bottom;
var x=d3.time.scale()
.范围([0,宽度]);
变量y=d3.scale.linear()
.范围([高度,0]);
var z=d3.scale.category20c();
var xAxis=d3.svg.axis()
.比例(x)
.orient(“底部”)
var yAxis=d3.svg.axis()
.scale(y).内部标记大小(-width).外部标记大小(0)
.东方(“左”);
var stack=d3.layout.stack()
.抵销(“零”)
.价值观(功能(d){
返回数据;
})
.x(功能(d){
返回新日期(d[0]);
})
.y(功能(d){
返回d[1];
});
var area=d3.svg.area()
.插入(“基数”)
.x(功能(d){
返回x(新日期(d[0]);;
})
.y0(功能(d){
返回y(d.y0);
})
.y1(功能(d){
返回y(d.y0+d.y);
});
var svg=d3.选择(“正文”).追加(“svg”)
.attr(“宽度”,宽度+边距。左侧+边距。右侧)
.attr(“高度”,高度+边距。顶部+边距。底部)
.附加(“g”)
.attr(“转换”、“平移”(+margin.left+)、“+margin.top+”);
变量b=[{
数据:[
[“2016-01-20T05:31:17.000Z”,95.9,{},
[“2016-01-20T05:31:47.000Z”,95.9,{},
[“2016-01-20T05:32:17.000Z”,95.4,{},
[“2016-01-20T05:32:47.000Z”,96.1,{},
[“2016-01-20T05:33:17.000Z”,95.7,{},
[“2016-01-20T05:33:47.000Z”,95.9,{},
[“2016-01-20T05:34:17.000Z”,95.5,{},
[“2016-01-20T05:34:47.000Z”,95.9,{},
[“2016-01-20T05:35:17.000Z”,95.8,{},
[“2016-01-20T05:35:47.000Z”,95.9,{},
[“2016-01-20T05:36:17.000Z”,95.7,{},
[“2016-01-20T05:36:47.000Z”,95.7,{},
[“2016-01-20T05:37:17.000Z”,95.9,{},
[“2016-01-20T05:37:47.000Z”,95.5,{},
[“2016-01-20T05:38:17.000Z”,95.4,{},
[“2016-01-20T05:38:47.000Z”,95.8,{},
[“2016-01-20T05:39:17.000Z”,96.0,{},
[“2016-01-20T05:39:47.000Z”,96.1,{},
[“2016-01-20T05:40:17.000Z”,95.8,{},
[“2016-01-20T05:40:47.000Z”,96.0,{},
[“2016-01-20T05:41:17.000Z”,95.9,{},
[“2016-01-20T05:41:47.000Z”,94.9,{},
[“2016-01-20T05:42:17.000Z”,95.8,{},
[“2016-01-20T05:42:47.000Z”,95.9,{},
[“2016-01-20T05:43:17.000Z”,95.8,{},
[“2016-01-20T05:43:47.000Z”,96.0,{},
[“2016-01-20T05:44:17.000Z”,95.7,{},
[“2016-01-20T05:44:47.000Z”,96.0,{},
[“2016-01-20T05:45:17.000Z”,95.9,{},
[“2016-01-20T05:45:47.000Z”,96.0,{},
[“2016-01-20T05:46:17.000Z”,95.8,{},
[“2016-01-20T05:46:47.000Z”,96.0,{},
[“2016-01-20T05:47:17.000Z”,95.7,{},
[“2016-01-20T05:47:47.000Z”,96.2,{},
[“2016-01-20T05:48:17.000Z”,95.8,{},
[“2016-01-20T05:48:47.000Z”,95.9,{},
[“2016-01-20T05:49:17.000Z”,95.7,{},
[“2016-01-20T05:49:47.000Z”,95.9,{},
[“2016-01-20T05:50:18.000Z”,95.7,{},
[“2016-01-20T05:50:48.000Z”,95.8,{},
[“2016-01-20T05:51:18.000Z”,95.7,{},
[“2016-01-20T05:51:48.000Z”,95.9,{},
[“2016-01-20T05:52:18.000Z”,95.5,{},
[“2016-01-20T05:52:48.000Z”,95.9,{},
[“2016-01-20T05:53:18.000Z”,95.8,{},
[“2016-01-20T05:53:48.000Z”,95.9,{},
[“2016-01-20T05:54:18.000Z”,95.7,{},
[“2016-01-20T05:54:48.000Z”,95.9,{},
[“2016-01-20T05:55:18.000Z”,95.8,{},
[“2016-01-20T05:55:48.000Z”,95.8,{},
[“2016-01-20T05:56:18.000Z”,95.6,{},
[“2016-01-20T05:56:48.000Z”,95.7,{},
[“2016-01-20T05:57:18.000Z”,95.7,{},
[“2016-01-20T05:57:48.000Z”,95.8,{},
[“2016-01-20T05:58:18.000Z”,95.7,{},
[“2016-01-20T05:58:48.000Z”,95.7,{},
[“2016-01-20T05:59:18.000Z”,95.6,{},
[“2016-01-20T05:59:48.000Z”,95.8,{},
[“2016-01-20T06:00:18.000Z”,95.7,{},
[“2016-01-20T06:00:48.000Z”,95.7,{},
[“2016-01-20T06:01:18.000Z”,95.6,{},
[“2016-01-20T06:01:48.000Z”,95.7,{},
[“2016-01-20T06:02:18.000Z”,95.8,{},
[“2016-01-20T06:02:48.000Z”,95.8,{},
[“2016-01-20T06:03:18.000Z”,95.8,{},
[“2016-01-20T06:03:48.000Z”,95.8,{},
[“2016-01-20T06:04:18.000Z”,95.8,{},
[“2016-01-20T06:04:48.000Z”,95.8,{},
[“2016-01-20T06:05:18.000Z”,95.7,{},
[“2016-01-20T06:05:48.000Z”,95.7,{}]
],
标签:“a”
}, {
数据:[
[“2016-01-20T05:31:17.000Z”,95.9,{},
[“2016-01-20T05:31:47.000Z”,95.9,{},
[“2016-01-20T05:32:17.000Z”,95.4,{},
[“2016-01-20T05:32:47.000Z”,96.1,{},
[“2016-01-20T05:33:17.000Z”,95.7,{},
[“2016-01-20T05:33:47.000Z”,95.9,{},
[“2016-01-20T05:34:17.000Z”,95.5,{},
[“2016-01-20T05:34:47.000Z”,95.9,{},
[“2016-01-20T05:35:17.000Z”,95.8,{},
[“2016-01-20T05:35:47.000Z”,95.9,{},
[“2016-01-20T05:36:17.000Z”,95.7,{},
[“2016-01-20T05:36:47.000Z”,95.7,{},
[“2016-01-20T05:37:17.000Z”,95.9,{},
[“2016-01-20T05:37:47.000Z”,95.5,{},
[“2016-01-20T05:38:17.000Z”,95.4,{},
[“2016-01-20T05:38:47.000Z”,95.8,{},
[“2016-01-20T05:39:17.000Z”,96.0,{},
[“2016-01-20T05:39:47.000Z”,96.1,{},
[“2016-01-20T05:40:17.000Z”,95.8,{},
[“2016-01-20T05:40:47.000Z”,96.0,{},
[“2016-01-20T05:41:17.000Z”,95.9,{},
[“2016-01-20T05:41:47.000Z”,94.9,{},
[“2016-01-20T05:42:17.000Z”,95.8,{},
[“2016-01-20T05:42:47.000Z”,95.9,{},
[“2016-01-20T05:43:17.000Z”,95.8,{},
["2016-01
var yTicks = [40,80,120,160];               // Use whatever values you like.
var yAxis = d3.svg.axis()
  .scale(y)
  .innerTickSize(-width)
  .outerTickSize(-width)                    // Set to -width for upper/lower grid lines
  .tickValues(yTicks)                       // Set custom grid values.
  .tickFormat(function(d) {
    return yTicks.indexOf(d) % 2 ? d : "";  // Custom tickFormat to hide certain tickValues
  })
  .orient("left");
y.domain([0, d3.max(d3.merge(ary), function(d) {
  return d.y0 + d.y;
}) * 1.1]);   // Extending the extent's max value by .1 to allow for padding.
var max = y.domain()[1];
var values = [];
for(var j =0; j <=max; j=j+20){
    values.push(j)
}
values.push(max)

yAxis.tickValues(values);
var last = svg.selectAll(".y .tick text")[0].length;  

svg.selectAll(".y .tick text")[0].forEach(function(d, i){
  if (i==last-1){
    return;//for showing last tick
  }
  if(i%2==0)
    d3.select(d).style("display", "none");//for showing alternate ticks
});