我将在我的饼图(中心)的每个弧中放置一个文本元素 - 如下例所示:http: //bl.ocks.org/mbostock/3887235
但是,如果房间足够整个文本,我只会放置文本元素,所以我必须将我的文本元素的大小与每个弧中的"可用"空间进行比较.
我想我可以用getBBox()来获取文本尺寸...但是如何获得(和比较)每个弧中可用空间的尺寸.
谢谢...!
今天我使用enter-update-exit逻辑创建了一个简单的条形图 - 一切正常.现在我将使用折线图进行相同的操作 - 图表的整个数据集可以随时更改,因此我将顺利更新图表.我找不到一个使用折线图和enter-update-exit逻辑的好例子(或者我看错了).目前我必须记住,如果第一次调用图表或更新数据(数据已更改) - 这是我的脏版本:
var channelGroup = d3.select(".ch1");
// init. Line Chart
if (firstLoad) {
channelGroup
.append('path')
.attr("class", "line")
.style("stroke", channel.Color)
.transition()
.ease("linear")
.duration(animChart / 2)
.attr('d', line(channel.DataRows));
}
// update Line Chart
else {
channelGroup
.selectAll("path")
.data([channel.DataRows])
.transition()
.ease("linear")
.duration(animChart / 2)
.attr("d", function (d) { return line(d); });
}
Run Code Online (Sandbox Code Playgroud)
我怎么能以一种好的方式实现这个目标?... thx!
我正在开发一个Android应用程序来阅读"电表".用户进入计数器 - 应用程序计算消耗并将其发送到服务器.
柜台的表示应该看起来像旧的电表 老电表
我已将计数器集成为图像.我将有一个动画,如果用户输入一个数字(键盘),那么相关部分开始旋转到正确的数字位置.
例如:用户输入第一个数字的数字5,然后从0-5旋转数字.动画数字翻转到正确的位置.我怎样才能做到这一点?任何的想法?感谢你!!!
我想创建一个具有多个(线性)轴的动态图。绘制轴后,我想(随着新数据的到来)更改Data Domain并重新绘制/更新轴。是否可以使用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);
Run Code Online (Sandbox Code Playgroud)
谢谢...!