D3.js 在ndv3饼图中动态更改标题
我正在用nvd3构建一个饼图,但我不知道如何使标题动态,或者至少在用户悬停在饼图的某个部分时运行回调 这是我的代码的相关部分:D3.js 在ndv3饼图中动态更改标题,d3.js,nvd3.js,D3.js,Nvd3.js,我正在用nvd3构建一个饼图,但我不知道如何使标题动态,或者至少在用户悬停在饼图的某个部分时运行回调 这是我的代码的相关部分: nv.addGraph(function () { let chart : any = nv.models.pieChart() .x(function (d : any) { return d.label; }) .y(function (d : any) { re
nv.addGraph(function () {
let chart : any = nv.models.pieChart()
.x(function (d : any) {
return d.label;
})
.y(function (d : any) {
return d.value;
})
.showLabels(false)
.labelThreshold(.05) //Configure the minimum slice size for labels to show up
.labelType("percent") //Configure what type of data to show in the label. Can be "key", "value" or "percent"
.donut(true) //Turn on Donut mode. Makes pie chart look tasty!
.donutRatio(0.6) //Configure how big you want the donut hole size to be.
.showLegend(false)
.color(function (d : any) {
return d.data.color;
})
.width(300)
.height(300)
.title("Hello");
//.on("mouseover", function(d: any) { console.log(d); });
d3.select("#chart svg")
.datum(exampleData())
.transition().duration(350)
.call(chart);
return chart;
});
该图表的工作原理与预期完全相同
这是一个与图表一致的例子。由于某些原因,该颜色不起作用,但在我自己的网站上它起作用。您可以使用NVD3库的dispatch方法进行事件订阅,当然,您也可以使用任何本机d3方法,例如d3.select。只需在代码中添加以下内容:
chart.pie.dispatch.on('elementMouseover', function(e) {
d3.select('.nv-pie-title').text(e.label);
});
chart.pie.dispatch.on('elementMouseout', function(e) {
d3.select('.nv-pie-title').text("Hello");
});
检查以下隐藏片段中的工作演示:
nv.addGraphfunction{
让chart=nv.models.pieChart
.X功能{
返回d.标签;
}
.功能正常{
返回d值;
}
.展示标签错误
.labelThreshold.05//配置要显示的标签的最小切片大小
.labelTypepercent//配置要在标签中显示的数据类型。可以是键、值或百分比
.donuttrue//打开甜甜圈模式。使饼图看起来美味可口!
.donutRatio0.6//配置您希望甜甜圈孔大小的大小。
.showLegendfalse
.彩色功能{
返回d.data.color;
}
.300
.身高300
titleHello先生;
//.onmouseover,functiond:any{console.logd;};
图表.饼图.调度.在'elementMouseover'上,函数E{
d3.选择'.nv饼图标题'.texte.label;
};
图表.饼图.调度.在'elementMouseout'上,函数E{
d3.选择'.nv pie title'.textHello;
};
d3.1选择图表svg
.datumexampleData
.过渡期
.呼叫图;
收益表;
};
函数示例数据{
返回[{
标签:超时,
价值:14.2,
数据:{
颜色:f00
}
}, {
标签:未接触,
价值:78.8,
数据:{
颜色:999999
}
}, {
标签:拒绝,
价值:6.9,
数据:{
颜色:FFFFFF
}
}];
}
你看到这个了吗。如果你把你的代码放在小提琴上,这会很容易得到帮助。@shabeer90这个问题对我没有帮助,我已经可以设置一个静态标题了好的,我需要做的是当用户悬停在一个切片上时,能够运行一个函数,并从该函数更改标题。