【发布时间】:2014-10-01 07:18:35
【问题描述】:
您好,我创建了一个垂直堆积条形图。我的数据在 csv 文件中。我的 x 比例是有序的。按照我的 x 比例应该是我的时间比例的要求。我应该做些什么改变来制作我的 x 轴时间刻度。我只有有限的时间来完成这个。这是我的代码
var x = d3.scale.ordinal()
.rangeRoundBands([0, width], .1);
var xAxis = d3.svg.axis()
.scale(x).ticks(5)
.orient("bottom");
【问题讨论】:
-
尝试一个时间尺度,比如 var x = d3.time.scale().domain(d3.extent(dates)) stackoverflow.com/questions/20181286/…
-
另一种选择是继续使用序数比例,但通过使用d3.time.interval range function 创建所有日期的数组来定义比例的域。然后使用日期格式化函数作为轴刻度格式化函数。这种方法与@Maggie 建议的方法之间的区别在于,在真正的时间尺度下,日期单位的间隔不均匀(例如,月份,可以有不同的天数),而宽度不均匀。使用序数比例,它们都将被绘制到相同的宽度。
-
说,@AmeilaBR,在我发布之前,您的解释无意中为我解决了一个问题。谢谢!
-
您好,感谢您的回复。但是我不能使用指定的域,因为我的数据是动态的。我想以数据动态出现的方式更改代码。我暂时只使用 CSV 文件。我不能用一些特定的日期值对数组进行硬编码。请尽快提出解决方案。
标签: javascript svg d3.js