d3.js - 如何从 d3 日历视图中的数据动态设置日期?
问题描述
在 d3日历视图示例中,我试图对其进行修改,以根据给定的数据自动确定要显示的年份范围。
是否可以让 d3 自动找出传递给 d3.range() 的参数以自动确定开始和结束年份,而不是使用硬编码的文字?
在下面的 .data() 行中,我尝试使用 d3.min() 和 d3.max() 作为 d3.range() 的参数,但这是不正确的。我已经尝试预先对嵌套数据进行排序以获得数组中的第一个和最后一个条目,但这没有奏效。建议?
return d3.select( "body" )
.selectAll( "svg" )
.data(d3.range(1990, 2010))
.enter()
.append( "svg" )
.attr( "width", width )
.attr( "height", height )
.attr( "class", "year" )
.append( "g" )
.attr( "transform", "translate(" + getOffsetX() + "," + getOffsetY() + ")" );
解决方案
将完成的所有内容d3.csv("dji.csv",
放在回调之前和之后d3.nest()
,修改以下行
var range = d3.extent(csv, d => Number(d.Date.substring(0,4)));
var svg = d3.select("body")
.selectAll("svg")
.data(d3.range(range[0], range[1]))
.enter().append("svg")
.attr("width", width)
.attr("height", height)
.append("g")
.attr("transform", "translate(" + ((width - cellSize * 53) / 2) + "," + (height - cellSize * 7 - 1) + ")");
推荐阅读
- php - PHP MongoDB $gt 过滤运算符与 findOne 功能
- javascript - 反应如何在反应js中找不到打印
- mysql - MySql - 从用逗号连接的字符串中选择
- api - 如何编辑跨域共享的谷歌日历(API)中的事件?
- entity-framework - 将 EF/Linq 中 OffSetDateTime 的日期部分与今天与 NodaTime 进行比较
- css - makestyles 不工作 nextsjs 材料 ui 版本 5
- python - Python按列名读取xlsx行?
- javascript - 如何替换输入文本值以匹配货币类型输入
- azure - 授予对另一个 Azure 租户中的服务主体的访问权限
- firebase - 阻止用户查找已阻止他们的用户 Firebase