作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个具有多个(线性)轴的动态图。绘制轴后,我想(当新数据到达时)更改数据域并重绘/更新轴。我可以使用 D3 选择现有轴并执行此操作,还是必须在代码中明确保存每个轴?我希望我的问题不会令人困惑。
// init all Y-Axis
$.each(chart.YAxes, function (index) {
var yScale, yAxis;
yScale = d3.scale.linear().range([chartHeight, 0]);
yScale.domain([this.YMin, this.YMax]);
yAxis = d3.svg.axis()
.scale(yScale)
.ticks(10, this.Title)
.orient("left");
d3Chart.append("g")
.attr("class", "yAxis " + "y" + this.ID)
.call(yAxis);
......
// update Y-Axis (after new data arrives...)
var myYAxis = d3.select(".y" + yAxis.ID);
var myScale = myYAxis. **// get Scale ??**
myScale.domain([newYMin, newYMax]);
d3Chart.select(".y" + yAxis.ID)
.transition().duration(300).ease("sin-in-out")
.call(myYAxis);
最佳答案
您需要保留对轴对象的引用,以便您可以再次调用它。选择包含它的 DOM 元素并调用它是行不通的。有很多关于如何更新轴的示例,例如在 this question .
关于d3.js - D3 动态重绘 Y 轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21879025/
我是一名优秀的程序员,十分优秀!