使用nvd3显示离散图表的自定义工具提示

时间:2015-05-04 18:00:14

标签: nvd3.js

我正在寻找帮助来覆盖 nvd3 bar(离散)图表的默认工具提示功能。

默认工具提示选择yAxis刻度并显示在工具提示中。

但是,在我的情况下,我不想在工具提示中显示yAxis数据(格式化为货币)而不是我想显示实际的yAxis值(没有货币的原始值)。

这就是我将值推送到我的数据[]。

@foreach (var item in Model.BarChart)
  {
    string yvalue = item.Cost== 0 ? "undefined" : item.Cost.ToString();
    string xvalue = item.Date.ToString("yyyy/MM/dd");
    @:data[0].values.push({y: @yvalue, x: '@xvalue'});
  }

我使用以下代码行格式化yAxis tick

chart.yAxis.tickFormat(function(d) { return d3.format(".1s")(d) + " USD" });

任何提示? 如果您需要更多信息,请告诉我?

通过Google搜索后,我发现了以下方式,但在此示例中,'y'是yAxis值而不是原始值。那么,我如何用原始值替换这个'y'?

chart.tooltip(function (key, x, y, e, graph) {
                return '<p><strong>' + key + '</strong></p>' +
                '<p>' + y + ' in the month ' + x + '</p>';
            });

1 个答案:

答案 0 :(得分:2)

尝试使用e.value代替y

chart.tooltipContent(function (key, x, y, e, graph) {
    return '<p><strong>' + key + '</strong></p>' +
           '<p>' + e.value + ' in the month ' + x + '</p>';
    });

e.point还应包含原始数据,包括任何额外属性。例如,如果您的输入数据具有“额外”属性(例如{ label : "A" , value : -29.76, extra: 123 }),那么您可以使用e.point.extra