javascript - D3 v4 日期刻度从不显示最后一项
问题描述
我正在使用 D3 v4 构建一个非常简单的图表。我正在使用 x 轴的时间刻度。我知道 D3 在使用时间刻度时可以控制显示的刻度数。但这似乎并不能解释这里的行为。
codepen(链接如下)显示了行为的 RTC。我有 5 个日期,非常简单地定义为2018-10-10
、2018-10-11
等。我正在使用d3.scaleTime()
and d3.axisBottom()
,没什么特别的。
无论我做什么,最后一个日期都不会包含在刻度线中。为什么会这样?
解决方案
在 d3 中使用时间尺度时存在一定的挑战。这是工作代码。您可以相应地更新刻度格式和高度/宽度-
var svg = d3.select('#graph')
.attr('width', '400px')
.attr('height', '200px')
var data = [
new Date('2018-10-10'),
new Date('2018-10-11'),
new Date('2018-10-12'),
new Date('2018-10-13'),
new Date('2018-10-14')
]
var x = d3.scaleTime().range([50, 350])
x.domain(d3.extent(data))
svg.append('g')
.attr('class', 'x-axis')
.call(d3.axisBottom(x) .tickValues(data.map(function(d){return d}))
.tickFormat(d3.timeFormat("%Y-%m-%d")));
推荐阅读
- google-apps-script - 缩短 Google 表格中录制的宏快捷方式
- java - 尝试读取 .crt 文件时权限被拒绝 - Android Studio Java
- timer - AHK 如何使一个 SetTimer 启动其他而不是反转
- azure - 将 azure key vault 扩展部署到 VM 的 azure arm 模板
- api - 如何根据反序列化无类型响应获取键值值
- c - 保存结构函数在文件中保留备用位置,而不是写入数组
- c - 链表中的结构
- scala - IntelliJ 在惰性 vals 中使用 `throw` 使代码变灰 - 这是一个错误吗?
- c++ - 如何在方法中同时拥有右值输入(使用运算符 =)和普通参数?
- pandas - 从堆积条形图中的两列添加error_y,绘图表达