gpt4 book ai didi

d3.js - v4.x 中的 d3.time.format.multi

转载 作者:行者123 更新时间:2023-12-02 12:19:50 25 4
gpt4 key购买 nike

在我的代码的早期版本中,我曾经像这样设置适当的区域设置格式

format = {
"decimal": ".",
"thousands": "",
"grouping": [3],
"currency": ["€", ""],
"dateTime": "%a %b %e %X %Y",
"date": "%d-%m-%Y",
"time": "%H:%M:%S",
"periods": ["AM", "PM"],
"days": ["Domenica", "Lunedi", "Martedi", "Mercoledi", "Giovedi", "Venerdi", "Sabato"],
"shortDays": ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"],
"months": ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"],
"shortMonths": ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"]
}

然后

var localeFormatter = d3.locale(format);

// set time tick format
var tickFormat = localeFormatter.timeFormat.multi([
["%H:%M", function (d) { return d.getMinutes(); }],
["%H:%M", function (d) { return d.getHours(); }],
["%a %d", function (d) { return d.getDay() && d.getDate() != 1; }],
["%b %d", function (d) { return d.getDate() != 1; }],
["%B", function (d) { return d.getMonth(); }],
["%Y", function () { return true; }]
]);

我最终存储了这些刻度格式设置,以便我可以在图表中使用它们

D3Preferences['localTimeTickFormat'] = tickFormat;

更新到版本 v4.2.8 后,d3.locale 消失了,我不知道如何实现相同的结果。

有人能指出我正确的方向吗? d3 文档对我没有帮助

最佳答案

随着 .multi 的弃用,您的 tickFormat() 函数现在也必须处理过滤逻辑,如下所示:

// Establish the desired formatting options using locale.format():
var formatDay = d3.timeFormat("%a %d"),
formatWeek = d3.timeFormat("%b %d"),
formatMonth = d3.timeFormat("%B"),
formatYear = d3.timeFormat("%Y");

// Define filter conditions
function tickFormat(date) {
return (d3.timeMonth(date) < date ? (d3.timeWeek(date) < date ? formatDay : formatWeek)
: d3.timeYear(date) < date ? formatMonth
: formatYear)(date);
}

Here's an updated version of Mike's original bl.ock (您可能从中派生 localeFormatter.timeFormat.multi()),设置为使用上面提到的 @altocumulus 条件逻辑。

关于d3.js - v4.x 中的 d3.time.format.multi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40286963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com