我正在寻找帮助来覆盖 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>';
});
答案 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
。