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);
编辑:
更改此行:
current.transition().text(Math.floor((num));// Text transition
成为:
current.transition().text(Math.floor((num/360)*100));// Text transition
所以现在您得到的值是从 0 到 100
我是 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);
编辑:
更改此行:
current.transition().text(Math.floor((num));// Text transition
成为:
current.transition().text(Math.floor((num/360)*100));// Text transition
所以现在您得到的值是从 0 到 100