D3.js 在ndv3饼图中动态更改标题

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

我正在用nvd3构建一个饼图,但我不知道如何使标题动态,或者至少在用户悬停在饼图的某个部分时运行回调

这是我的代码的相关部分:

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这个问题对我没有帮助,我已经可以设置一个静态标题了好的,我需要做的是当用户悬停在一个切片上时,能够运行一个函数,并从该函数更改标题。