D3 圆形图表刻度

D3 circular chart scale

我是 d3 菜鸟,所以我需要一些帮助来创建圆形仪表图。图表应根据特定值从红色变为黄色再变为绿色。

问题是我想把图表里面的文字显示为0到100,现在是360到0,这样可以吗?

另外,如何将值定位在我的内圆的中心点?

我用这段代码随机更改值:

  var pi = Math.PI;
  var num = Math.random() * 360;
  var numPi = Math.floor(num - 360) * -(pi/180);

我做了一个简单的 plunker 来展示我的尝试:http://plnkr.co/edit/CREdBeHKxre2ISNqOD6N?p=preview

你的意思是360会显示为100?和 0 作为 0?如果是这样,只需找到从 [0,360] 移动到 [0,100] 甚至移动到 [0,1]

的函数

并且要让 360 达到最高,请执行以下操作: 来自:

var numPi = Math.floor(num - 360) * -(pi/180);

至:

var numPi = Math.floor(num) * -(pi/180);

另见: http://www.brightpointinc.com/clients/brightpointinc.com/library/radialProgress/index.html?source=d3js

编辑:

更改此行:

  current.transition().text(Math.floor((num));// Text transition

成为:

  current.transition().text(Math.floor((num/360)*100));// Text transition

所以现在您得到的值是从 0 到 100