2017-04-20 36 views
0

我創造了一些餅圖與Plotly.js但我無法弄清楚如何設置值的格式。如果我的電話號碼是19.231,我會得到19.2。我想要19.2310,精度爲4位數。我的數據和佈局遵循在這裏:Plotly.js餅圖值格式

var data = [{ 
    values: values, 
    labels: labels, 
    type: 'pie', 
    marker: { 
     colors: colors 
    }, 
    textfont: { 
     family: 'Helvetica, sans-serif', 
     size: 48, 
     color: '#000' 
    } 
}]; 
var layout = { 
    height: 1350, 
    width: 1500, 
    title: title, 
    titlefont: { 
     family: 'Helvetica, sans-serif', 
     size: 58, 
     color: '#000' 
    }, 
    legend: { 
     x: 1.1, 
     y: 0.5, 
     size: 40, 
     font: { 
      family: 'Helvetica, sans-serif', 
      size: 48, 
      color: '#000' 
     } 
    } 
}; 
+0

你可以添加一些你的價值觀有一個最小的,可覈查的例子嗎? –

+0

它們根據用戶輸入在流程上生成。值爲浮點數,在逗號後自動將它們四捨五入爲一位數字。 – ppablo

+1

如果你嘗試'var values = [1,2,4.6];'你得到13.2%,26.3%和60.5%而不是13.1579%,26.3158%和60.5263% – ppablo

回答

1

據我知道你不能在Plotly直接做到這一點,但你可以用你想要的精確度增加text值,並設置textinfotext

var values = [Math.random(), Math.random(), Math.random()]; 
 
var sum = values.reduce(function(pv, cv) { return pv + cv; }, 0); 
 
var digits = 4; 
 
var rounded_values = []; 
 

 
for (var i = 0; i < values.length; i += 1) { 
 
\t rounded_values.push(Math.round(values[i]/sum * 100 * 10**digits)/10**digits + '%'); 
 
} 
 

 
var myPlot = document.getElementById('myPlot'); 
 
var data = [{ 
 
    values: values, 
 
    type: 'pie', 
 
    text: rounded_values, 
 
\t textinfo: 'text' 
 
}]; 
 
Plotly.plot(myPlot, data);
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script> 
 
<div id="myPlot"></div>

+0

謝謝,這正是我正在關注的。 – ppablo