如何使用新版本的D3 API替换以下行?
我已经换scale.linear()了scaleLinear()
var xRange = d3.scaleLinear()
.domain([OIResults.min,OIResults.max]).range([40, 360]);
var yRange = d3.scaleLinear()
.domain(y_domain).range([360, 40]);
Run Code Online (Sandbox Code Playgroud)
以下行需要根据新API进行替换:
var xAxis = d3.svg.axis().scale(xRange).tickFormat(function(d) { return d.x;});
var yAxis = d3.svg.axis().scale(yRange).orient("left");
Run Code Online (Sandbox Code Playgroud) 在D3版本4.x中,d3.scale.ordinal()已更改为d3.scaleOrdinal并d3.rangeRoundBands已更改为:
d3.scaleBand()
.rangeRound([range]);
Run Code Online (Sandbox Code Playgroud)
要找到一个乐队的宽度,相当于d3.rangeBand()什么?
我试图执行这里提到的可折叠树代码.但似乎对角线方法不适用于v4(我可能错了).
对于:
var diagonal = d3.svg.diagonal()
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
var diagonal = d3.svg.diagonal()
Run Code Online (Sandbox Code Playgroud)
如果是,那么v4中的等价是什么?看看d3.js API参考没有给我任何线索.
这是我的代码片段:
var xScale = d3.scaleLinear().range([MARGINS.left, WIDTH - MARGINS.right]).domain([scaleMin, scaleMax]);
var yScale = d3.scaleLinear().range([HEIGHT - MARGINS.top, MARGINS.bottom]).domain([minValue,maxValue+numberOfSignals*300]);
xAxis = d3.svg.axis().scale(xScale);
yAxis = d3.svg.axis().scale(yScale).orient("left");
vis.append("svg:g")
.attr("transform", "translate(0," + (HEIGHT - MARGINS.bottom) + ")")
.call(xAxis);
vis.append("svg:g")
.attr("transform", "translate(" + (MARGINS.left) + ",0)")
.call(yAxis);
Run Code Online (Sandbox Code Playgroud)
这是我的代码.但每次我运行它我得到错误"情节:91未捕获的TypeError:无法读取未定义的属性'轴'".事情是,它以前工作.有更新吗?谢谢!
为什么在对象中传播undefined会返回一个空对象?{...undefined} // equals {}:
console.log({...undefined})Run Code Online (Sandbox Code Playgroud)
为什么在数组中传播未定义会给出错误?
[...undefined] // type error:
console.log([...undefined])Run Code Online (Sandbox Code Playgroud)
我有700万份生物多样性记录的csv,其中分类学级别为列。例如:
RecordID,kingdom,phylum,class,order,family,genus,species
1,Animalia,Chordata,Mammalia,Primates,Hominidae,Homo,Homo sapiens
2,Animalia,Chordata,Mammalia,Carnivora,Canidae,Canis,Canis
3,Plantae,nan,Magnoliopsida,Brassicales,Brassicaceae,Arabidopsis,Arabidopsis thaliana
4,Plantae,nan,Magnoliopsida,Fabales,Fabaceae,Phaseoulus,Phaseolus vulgaris
Run Code Online (Sandbox Code Playgroud)
我想在D3中创建一个可视化文件,但是数据格式必须是网络,其中每个列的不同值都是上一个特定值的列的子级。我需要从csv转到类似这样的内容:
{
name: 'Animalia',
children: [{
name: 'Chordata',
children: [{
name: 'Mammalia',
children: [{
name: 'Primates',
children: 'Hominidae'
}, {
name: 'Carnivora',
children: 'Canidae'
}]
}]
}]
}
Run Code Online (Sandbox Code Playgroud)
我还没有想到不使用上千个for循环就如何做到这一点的想法。是否有人对如何在python或javascript上创建此网络提出建议?
javascript python data-visualization hierarchical-data d3.js
我是D3的新手并在几张图表上进行实验.在使用D3 V4构建折线图时,我遇到了以下错误.
d3.line(...).x(...).y(...).interpolate不是函数
我认为这个错误是由于D3 v4中的函数插值不可用.如果有人可以帮助我使用插值函数的替换函数,那将会很棒.
我的代码在以下链接中
我有一个用base64创建的Blob,我需要将此数据下载为pdf。
我创建了以下代码段:
var blob = new Blob([byte]);
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.target = '_blank';
var fileName = name + '.pdf';
link.download = fileName;
link.click();
Run Code Online (Sandbox Code Playgroud)
它适用于所有浏览器,但iOS上的safari mobile除外。
该文件实际上已下载,但名称为“未知”,由于扩展名丢失,因此无法打开。
问题在于,下载属性缺少对此浏览器和IE的支持。
IE有很多解决方法,但我没有在Safari / iOS中找到任何解决方法。
您知道如何在此浏览器中下载从base64(不涉及XHR)获得的Blob吗?
谢谢
我正在尝试selection.on()在 D3 v6 中获取节点的绑定数据。在我的事件侦听器中,我获取的是鼠标事件数据而不是数据。我如何获取数据?
这是我的代码
const data = {
"nodes": [{
"id": "Myriel",
"group": 1
}, {
"id": "Napoleon",
"group": 1
}]};
const nodes = data.nodes.map(d => Object.create(d));
const node = svg.append("g")
.selectAll("circle")
.data(nodes)
.join("circle")
...
node.on("mouseover",d=>{
console.log(d); //output = MouseEvent
console.log(d.id); //output = undefined
});
Run Code Online (Sandbox Code Playgroud) 这是D3的新手,也是JS的新手.我试图在点击上创建一个圆圈,一旦创建该圆圈需要反复脉动.现在,它正在被正确创建并且它会进行一次转换,但之后由于错误而死亡.这是我的代码:
var shapesAtt = shapes
// omitted: assigning fill, position, etc; working as intended
.on("click", circleMouseClick);
function circleMouseClick(d, i)
{
createPulse(this);
}
function createPulse(focusElement)
{
// takes in "focal circle" element
// some things here are hard coded for ease of reading
// (i.e. these variables aren't all useless)
var focus = d3.select(focusElement);
var origR = focus.attr("r");
var origX = focus.attr("cx");
var origY = focus.attr("cy");
var origFill = focus.style("fill");
var strokeColor = "black";
var newG = svgContainer.append("g");
var pulser = …Run Code Online (Sandbox Code Playgroud) javascript ×9
d3.js ×8
d3v4 ×2
svg ×2
download ×1
ecmascript-6 ×1
html ×1
ios ×1
python ×1
safari ×1