首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >d3复利债务

d3复利债务
EN

Stack Overflow用户
提问于 2013-05-23 00:38:11
回答 1查看 346关注 0票数 3

我正在尝试创建一个复利建模图,对于每一张信用卡,它将允许用户修改(通过滑块)他们每月支付的金额,并将其反映在指数函数图中--当他们增加滑块数量时,指数曲线与顶轴(年份)相交时,债务将提前还清。

在sliderchange上重画指数函数还是为增量和过渡创建json更好?我还没有见过很多d3指数函数的例子。

EN

回答 1

Stack Overflow用户

发布于 2013-05-23 06:02:23

我不能说这是最好的解决方案,但如果我这样做,我可能会这样做:

我的假设是

  1. 复利是根据某个时间间隔(我想信用卡是按月计算)计算的。
  2. 该图将显示未来几年的总金额(欠款),比方说10年。

在此基础上,我们可以得出要绘制的点数,例如120 (10年乘12个月)。

然后,通过一个简单的循环,我将创建一个包含120个元素的null数组:

代码语言:javascript
运行
复制
var points = [null, null, null, null, null, null.....null, null]; // 120 null's

然后,我将创建一个线生成器,它根据数组中的索引计算X和Y。这意味着,由于目标是运行以下内容:

代码语言:javascript
运行
复制
d3.select('svg')
  .append('path')
  .attr('d', lineGenerator(points))// points are the array of nulls

然后,我会像这样创建行生成器:

代码语言:javascript
运行
复制
var lineGenerator = d3.svg.line()
  .x(function(d, i) {
    // return a date value calculated as function of i
  })
  .y(function(d, i) {
    // return a compound interest "future value" as a function of i
  })

重点在于,当用户更改参数(通过滑块)时,不需要重新构建点数组(除非点的数量必须更改,在这种情况下,我会在其中添加/删除nulls )。即使是传递到行生成器的x()y()方法中的函数也不必更改--只需更改这些函数中用于计算输出的参数(即var)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16697202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档