在D3.js中为三维饼图添加标签
Adding labels to a 3D pie chart in D3.js
我试图在本例中重新创建3D饼图:http://bl.ocks.org/NPashaP/9994181
以下是我的版本:http://jsfiddle.net/26v6cc8x/1/
var salesData=[
{label:"Basic", color:"#3366CC"},
{label:"Plus", color:"#DC3912"},
{label:"Lite", color:"#FF9900"},
{label:"Elite", color:"#109618"},
{label:"Delux", color:"#990099"}
];
var svg = d3.select("body").append("svg").attr("width",700).attr("height",400);
svg.append("g").attr("id","quotesDonut");
Donut3D.draw("quotesDonut", randomData(), 450, 150, 250, 150, 50, 0);
function changeData(){
Donut3D.transition("quotesDonut", randomData(), 250, 150, 50, 0);
}
function randomData(){
return salesData.map(function(d){
return {label:d.label, value:1000*Math.random(), color:d.color};});
}
$(".btn-change").click(function(){
changeData();
});
我的问题是,如何在饼图之外添加实际的数据标签(而不是计算的百分比),并确保它们在转换后保持正确的位置?这意味着我希望同时显示百分比和标签。
非常感谢您的帮助。谢谢
在Donut3D.js中更改以下函数:
function getPercent(d){
return (d.endAngle-d.startAngle > 0.2 ?
Math.round(1000*(d.endAngle-d.startAngle) / (Math.PI * 2)) /10 + '%' : '');
}
对此:
function getPercent(d) {
return (d.endAngle - d.startAngle > 0.2 ?
d.data.label + ': ' + Math.round(1000 * (d.endAngle - d.startAngle) / (Math.PI * 2)) / 10 + '%' : '');}
这将在标签前面加上图形中显示的百分比值。
希望这能有所帮助!
相关文章:
- 高图表根据负/正值添加 yAxis 标签
- 在d3.js中添加文本标签以强制定向图链接
- 在每个条形图的中间添加文本标签&鼠标悬停事件
- 如何在Phonegap中进行AJAX调用时添加加载屏幕
- 不能在我们的CMS中使用PHP,但我想添加PHP标签
- 使用 javascript 在运行时将 id 添加到
- 标签
- 如何在加载前添加加载动画
- 如何为这些图像添加标题标签
- Symfony - 嵌入表单中的食谱“添加新标签”不起作用
- 如何在网页加载之前添加加载页面
- 使用 JS 或 Jquery 将复选框和无线电中的值添加到标签中
- 如果元素不包含“*”,则使用 jQuery 将“*”添加到标签中
- 选择2:使用代码动态添加新标签
- 当我使用 ckeditor 工具栏时,它会添加 html 标签,而不是在显示时添加所需的效果
- 将类添加到标签
- 添加 tr 标签会导致函数停止工作
- 仅在移动设备中添加 javascript 标签
- 如何添加<br/>在最后一个单词上加标签
- 动态添加
标点符号前加标签 - 为什么添加<脚本>标签在运行时不加载javascript文件?(react.js)