javascript - d3.timeWeek ,一周的第一天
问题描述
我对 D3.timeWeek 有疑问,我用它来指定 x 轴上的刻度:
plotXaxis: function (svg) {
var x = d3scaleTime()
.domain(
d3extent(this.series, function (d) {
return d.date;
})
)
.range([0, this.width]);
svg
.append("g")
.attr("transform", "translate(0," + this.height + ")")
.call(
d3axisBottom(x)
.ticks(d3timeWeek.every(1))
.tickFormat(d3timeFormat("%d. %b"))
);
这给了我一个非常漂亮的 x 轴,数据中每周都有一个刻度。问题是 D3 意味着一周从星期日开始,所以我的 x 轴上的日期都是星期日 -比如 07-03-2021 而不是 08-03-2021。
我希望它从星期一开始以适应丹麦的文化,我曾希望在 d3.timeWeek 上进行一些文化设置?
解决方案
只需使用d3.timeMonday
:
const svg = d3.select("svg");
const now = new Date;
const x = d3.scaleTime()
.domain([d3.timeMonth.floor(now), d3.timeMonth.ceil(now)])
.range([20, 480]);
svg.append("g")
.attr("transform", "translate(0,50)")
.call(d3.axisBottom(x)
.ticks(d3.timeMonday.every(1))
.tickFormat(d3.timeFormat("%d. %b"))
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
<svg width="500"></svg>
推荐阅读
- c++ - 为什么windbg 不能在内核模式转储中显示我的用户模式调用堆栈?
- flutter - 提供 AnimatedSwitcher Flutter
- python - Pandas 将所有列转换为数据条目并为其当前值创建新列
- android - 从 mikepenz 材料抽屉中的数组中获取配置文件项目
- bash - 只能使用 bash -x 运行脚本
- c# - C# 中的文件复制问题,不支持给定路径的格式
- xamarin - 添加新视图控制器不会创建 XIB 文件
- javascript - 按钮不起作用并更改边框颜色
- python - 如何创建没有内存错误的大矩阵?
- requirejs - RequireJs asp.net 核心身份页面路径不起作用