D3.js D3基于时间的刻度溢出轴
我一直在做一个类似于本例的堆叠条形图,但是运行D3V4,如图中所示 然而,正如您在小提琴中看到的,我有一个问题,图形中的最后一个元素延伸出轴的末端。我是说,我想这是有道理的。但我不确定如何在图形中显示此内容,并确保所有元素都适合提供的图形宽度 我假设我需要修改x轴的域,它当前是D3.js D3基于时间的刻度溢出轴,d3.js,D3.js,我一直在做一个类似于本例的堆叠条形图,但是运行D3V4,如图中所示 然而,正如您在小提琴中看到的,我有一个问题,图形中的最后一个元素延伸出轴的末端。我是说,我想这是有道理的。但我不确定如何在图形中显示此内容,并确保所有元素都适合提供的图形宽度 我假设我需要修改x轴的域,它当前是 x.domain(d3.extent(data, function(d) { return d.Date; })); 但是除了手动添加一个额外的数据点,在随后的日期中没有数据,我不知道如何管理它。如果有人能提供任何指导
x.domain(d3.extent(data, function(d) { return d.Date; }));
但是除了手动添加一个额外的数据点,在随后的日期中没有数据,我不知道如何管理它。如果有人能提供任何指导,我们将不胜感激 对于条形图,最好使用。它计算条的大小、位置和填充
var x = d3.scaleBand()
.range([0, width])
.padding(0.05);
以下是更新的小提琴:
对于条形图,最好使用。它计算条的大小、位置和填充
var x = d3.scaleBand()
.range([0, width])
.padding(0.05);
以下是更新的小提琴:
实际上,代码本身没有什么问题。这里的问题正是时间尺度的概念,以及使用这种尺度的条形图 如果你仔细观察小提琴,每一条线都从它应该开始的地方开始,也就是说,每一条线的
x
值对应于x轴上的时间值。但条形图有一个宽度,问题就在这里:当你将宽度设置为18px(或任何其他值)时,条形图将溢出时间刻度。这是正常的,也是意料之中的
时间刻度应与点一起使用,其中每个点(ADI)正好位于时间刻度的正确位置,或与一条线一起使用,该线只是一条连接点的路径
说到这里,你有两个选择:
var x = d3.scale.ordinal()
scaleOrdinal
或者更好的方法是使用scaleBand
实际上,代码本身并没有什么问题。这里的问题正是时间尺度的概念,以及使用这种尺度的条形图 如果你仔细观察小提琴,每一条线都从它应该开始的地方开始,也就是说,每一条线的
x
值对应于x轴上的时间值。但条形图有一个宽度,问题就在这里:当你将宽度设置为18px(或任何其他值)时,条形图将溢出时间刻度。这是正常的,也是意料之中的
时间刻度应与点一起使用,其中每个点(ADI)正好位于时间刻度的正确位置,或与一条线一起使用,该线只是一条连接点的路径
说到这里,你有两个选择:
var x = d3.scale.ordinal()
scaleOrdinal
或者更好的方法是使用scaleBand
非常感谢!那太有用了!非常感谢!那太有用了!