Javascript 为什么最大的变量取d3.max()值,而最小的变量d3.min()不能正常工作?

Javascript 为什么最大的变量取d3.max()值,而最小的变量d3.min()不能正常工作?,javascript,d3.js,Javascript,D3.js,我的任务是组织时间轴可视化 我从- 进行必要的修改时,我注意到timeBegin变量等于“0”,如果我试图通过引入以下内容来修改它: d3.min(timeSegments, function (d) { return d.segment_start; }) 图表开始水平放大。只有当变量timeBegin为0时,图形才会以正确的方式显示。我在D3中的错误思维在哪里 我发现了另一个例子-,但这个案例对我来说有点复杂 复制品 .图表表{ 形状渲染:边缘清晰; } .图形方形文本{

我的任务是组织时间轴可视化

我从-

进行必要的修改时,我注意到
timeBegin
变量等于“0”,如果我试图通过引入以下内容来修改它:

d3.min(timeSegments, function (d) { 
    return d.segment_start; 
})
图表开始水平放大。只有当变量
timeBegin
为0时,图形才会以正确的方式显示。我在D3中的错误思维在哪里

我发现了另一个例子-,但这个案例对我来说有点复杂


复制品
.图表表{
形状渲染:边缘清晰;
}
.图形方形文本{
字体:10px无衬线;
}
div.tooltip-donut{
位置:绝对位置;
文本对齐:居中;
填充:.5rem;
背景:#FFFFFF;
颜色:#313639;
边框:1px实心#313639;
边界半径:8px;
指针事件:无;
字体大小:1.3rem;
}
.刷{
笔画:灰色;
填充:道奇蓝;
填充不透明度:.365;
}
//资料
var lanes=[“中国”、“日本”、“韩国”、“摩尔多瓦”],
车道长度=车道长度,
时间段=[{
“车道”:0,
“id”:“秦”,
“段_开始”:100,
“段_端”:210,
“旗帜”:假
},
{
“车道”:0,
“id”:“Jin”,
“段_开始”:210,
“段_端”:420,
“旗帜”:正确
},
{
“车道”:0,
“id”:“Sui”,
“段_开始”:420,
“段末”:615,
“旗帜”:假
},
{
“车道”:1,
“id”:“大和”,
“段_开始”:300,
“段末”:530,
“旗帜”:假
},
{
“车道”:1,
“id”:“华硕”,
“段_开始”:530,
“段末”:700,
“旗帜”:正确
},
{
“车道”:1,
“id”:“奈良”,
“段_开始”:710,
“段末”:800,
“旗帜”:假
},
{
“车道”:1,
“id”:“平安”,
“段_开始”:800,
“段_端”:1180,
“旗帜”:正确
},
{
“车道”:2,
“id”:“三国”,
“段_开始”:100,
“段_端”:670,
“旗帜”:假
},
{
“车道”:2,
“id”:“南北各州”,
“段_开始”:670,
“段尾”:900,
“旗帜”:正确
},
{
“车道”:3,
“id”:“基希讷乌”,
“段_开始”:250,
“段末”:600,
“旗帜”:假
},
{
“车道”:3,
“id”:“巴尔蒂”,
“段_开始”:600,
“段尾”:900,
“旗帜”:正确
},
{
“车道”:3,
“id”:“Ungheni”,
“段_开始”:920,
“段_端”:1380,
“旗帜”:假
}
],
timeBegin=0,/!!!d3.min(时间段,函数(d){return d.segment_start;})--不工作!!!
timeEnd=d3.max(时间段,函数(d){
返回d段\ U结束;
});
var宽度总计=1300,
总高度=500,
保证金={
前10名,
右:15,
底部:0,
左:100
},
widthSVG=widthTotal-margin.right-margin.left,
heightSVG=heightTotal-margin.top-margin.bottom,
图形高度=长度*10+高度总计/3;//-3只是一个常数
//天平
var scaleX=d3.scaleLinear()
.domain([timeBegin,timeEnd])
.范围([0,svg]);
var scaleY=d3.scaleLinear()
.domain([0,laneLength])
.范围([0,图形高度]);
var colorScale=d3.scaleOrdinal(d3.SchemeCategory 10);
var图表=d3.选择(“主体”)
.append(“svg”)
.attr(“宽度”,宽度SVG+margin.right+margin.left)
.attr(“高度”,高度SVG+margin.top+margin.bottom)
.attr(“类别”、“图表表”);
var图形=图表。追加(“g”)
.attr(“转换”、“平移”(“+margin.left+”,“+margin.top+”)
.attr(“宽度”,widthSVG)
.attr(“高度”,图形高度)
.attr(“类”、“图形正方形”);
//画轴
图表.附加(“g”)
.attr(“transform”、“translate”(“+margin.left+”,“+(graphHeight+20)+”)//这控制轴的垂直位置
.call(d3.axisBottom(scaleX));
//界线
图形。追加(“g”)。选择全部(“.laneLines”)
.数据(时间段)
.enter().append(“行”)
.attr(“x1”,0)
.attr(“y1”,函数(d){
返回scaleY(d.lane);
})
.attr(“x2”,svg)
.attr(“y2”,功能(d){
返回scaleY(d.lane);
})
.attr(“笔划”、“浅灰色”);
//车道名称显示
graph.append(“g”).selectAll(“laneText”)
.数据(车道)
.enter().append(“文本”)
.文本(功能(d){
返回d;
})
.attr(“x”,-页边距。右侧)
.attr(“y”,函数(d,i){
返回scaleY(i+0.5);
})
.attr(“dy”,“.5ex”)
.attr(“文本锚定”、“结束”)
.attr(“类别”、“laneText”);
//为“悬停信息”添加DIV
var div=d3.选择(“主体”).追加(“div”)
.attr(“类”、“工具提示甜甜圈”)
.样式(“不透明度”,0);
//图项矩形
graph.append(“g”).selectAll(“graphItem”)
.数据(时间段)
.enter().append(“rect”)
.attr(“x”,函数(d){
返回scaleX(d段\ U开始);
})
.attr(“y”,函数(d){
设shiftVertical=9;
如果(d.标志){
移位垂直=0
};
返回标尺(d.lane+.5)-垂直移位;
})
.attr(“宽度”,函数(d){
返回scaleX(d段结束-d段开始);
})
.attr(“高度”,10)
.style(“fil
.attr("width", function(d) {
    return scaleX(d.segment_end - d.segment_start);
})
.attr("width", function(d) {
    return scaleX(d.segment_end - d.segment_start + scaleX.domain()[0]);
})