gpt4 book ai didi

javascript - 如何在饼图中添加和操作值?

转载 作者:行者123 更新时间:2023-11-30 06:21:21 25 4
gpt4 key购买 nike

我正在使用 http://d3pie.org/为我的 Web 应用程序生成饼图。现在,我想操纵图表上显示的值。目前,出现的值有超过 4 位小数。例如, 10.35234234234 。我只想让 10.3523 出现。

这是我当前的代码:

function drawPie(id,from,to,C,formula){
var subArray = getSubArray(C.table,from,to);
if(Object.keys(subArray).length){
var partials = createPartials(subArray, C.attributes);
//console.log("partials -> ",partials);

formula = formula.slice(1,-1);
//console.log("formula ->" , formula);
formula = formula.split(",");
//console.log("formula ->" , formula);
var cloneFormula = formula.slice();

for( var i in partials){
if(i.substr(0,1) == "$"){
for(var j = 0; j< formula.length; j++){
formula[j] = replaceFunction(i,formula[j],partials[i]);
}

}

}

//console.log("replaced formula ->" , formula);

var data = [];

var isEmpty = true;
for(var j = 0; j< formula.length; j++){
var label = cloneFormula[j].split(/(?=[-+*\/])/)[0].split(".")[1];
var temp = {};
try{
temp.value = eval(formula[j]);
}catch(err){
temp.value = 0;
}
temp.label = partials[label + ".name"];
temp.color = partials[label + ".color"];
data.push(temp);
if(temp.value != 0){
isEmpty = false;
}
}

if(isEmpty){
return true;
}

//console.log("data ->" , data);

var pie = new d3pie(id, {
"size": {
"canvasHeight": 400,
"canvasWidth": 800, //see defect 1418
"pieOuterRadius": "88%"
},
"data": {
"content": data
},
"labels": {
"outer": {
"pieDistance": 100
},
"inner": {
"format": "value"
},
"mainLabel": {
"font": "verdana"
},
"percentage": {
"color": "#e1e1e1",
"font": "verdana",
"decimalPlaces": 0
},
"value": {
"color": "#e1e1e1",
"font": "verdana"
},
"lines": {
"enabled": true,
"color": "#cccccc"
},
"truncation": {
"enabled": true
}
},
"effects": {
"pullOutSegmentOnClick": {
"effect": "linear",
"speed": 400,
"size": 8
}
}
});
return false;
}

return true;
}

你能帮我尝试修改饼图中出现的文本吗?

最佳答案

使用以下代码去除数字,然后对其进行舍入。

function strip(number) {
return (parseFloat(number).toPrecision(4));
}

例子

var number = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

function strip(number) {
return (parseFloat(number).toPrecision(6));
}

window.alert(strip(number));

对于您正在使用的生成器,转到标签部分,在标签样式/设置下,您会找到百分比值的小数位选项。输入您希望将标签限制在的小数位数。

关于javascript - 如何在饼图中添加和操作值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52870808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com