【问题标题】:showing custom tooltip for Discrete chart using nvd3使用 nvd3 显示离散图表的自定义工具提示
【发布时间】:2015-05-04 18:00:13
【问题描述】:

我正在寻求帮助以覆盖 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>';
            });

【问题讨论】:

    标签: nvd3.js


    【解决方案1】:

    尝试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

    【讨论】:

    • 它适用于 e.value 但不适用于 e.y.我猜你也打算使用 e.value 而不是 e,y 因为 y 包含格式化数据。对吗?
    • 很好,我的数据格式不太正确。我已经更新了我的答案。
    • 请注意,tooltipContent 函数将在下一个版本中弃用,因为工具提示代码已被重写。以后你必须使用新的 tooltip.contentGenerator() 函数。
    • 我的 chart.tooltipContent 未定义 ..??
    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多