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

showing custom tooltip for Discrete chart using nvd3

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

默认工具提示选择 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 刻度

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

有什么提示吗? 让我知道您是否需要更多信息?

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

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

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