如何使用日期对象作为直线轴的刻度标签
How can I use date objects as tick labels for a linear axis?
我尝试过使用d3时间轴,是的,这个问题是通过使用d3时间轴来解决的,但还有很多其他的复杂性我无法处理。另一方面,线性轴似乎只表示打勾标签的问题。
我有一个充满日期对象的数组为我的标记- dateTickValues
console.log(dateTickValues)
返回Thu Jan 01 2015 05:30:00 GMT+0530 (IST),Fri Jan 02 2015 05:30:00 GMT+0530 (IST),Sat Jan 03 2015 05:30:00 GMT+0530 (IST),Sun Jan 04 2015 05:30:00 GMT+0530 (IST),Mon Jan 05 2015 05:30:00 GMT+0530 (IST),Tue Jan 06 2015 05:30:00 GMT+0530 (IST)
但是当我使用
var xScale = d3.scale.linear()
.domain([0, no_of_ticks])
.range([0, width]);
var xAxis = d3.svg.axis()
.scale(xScale)
.ticks(no_of_ticks) //computed elsewhere in the code - clean
.tickValues(dateTickValues)
.orient("top");
结果图上的勾号标签为空-即不出现勾号标签。
为什么会发生这种情况,我该如何修复它?
关键是使用.tickFormat()
函数。我不清楚你到底想做什么,所以这里有两个版本。
首先,您可以使用Date
对象本身的比例,然后.tickFormat()
类似于
.tickFormat(function(d) { return d3.time.format("%Y-%m-%d %H:%M:%S")(new Date(d)); });
完整的演示在这里。
如果你使用的是一个带有刻度的日期数组的索引,它应该是类似于
.tickFormat(function(d, i) { return d3.time.format("%Y-%m-%d %H:%M:%S")(new Date(dates[i])); });
完整的演示在这里。
另一方面,同时使用.ticks()
和.tickValues()
是没有意义的——您可能只需要.tickValues()
。
相关文章:
- JQuery:单击范围标签时切换日期选择器
- 如何将选定的日期月份和年份打印到不同的DIV标签中
- 在 php 标题标签中添加日期函数
- highchart x轴未显示正确的日期标签
- gRaphaël-带标签和日期的条形图示例
- 如何自动递增选择标签中的日期
- 列的高图表日期时间标签
- 动态更改高图中x轴刻度标签的日期时间格式
- 输入标签上 7 天后的日期
- 高图表图表不同日期范围的 X 轴标签
- X 轴中的最后一个标签,日期时间格式不在高图表中
- 使用Greasemonkey为页面上的日期添加粗体标签
- jq绘图 :旋转轴日期标签
- 高图表 - 日期时间轴标签重叠
- 高图表日期时间标签格式不起作用
- Highcharts-如何将标签集中在日期时间x轴上
- 如何在标签和文本框中显示日期选取器值
- 将开始日期和结束日期添加为高图中的X轴标签
- jQuery:更新,按类,跨度标签与日期picker输入值
- 谷歌DFP广告标签:可以指定预览/测试的时间戳/日期