javascript - d3图表在鼠标悬停时在一个切片中显示多个标签
问题描述
我有以下 d3 饼图
我使用以下 js 代码创建了这个
函数饼图(){
var usapass = 20;
var usafail = 40;
var usasum = usapass + usafail;
var englandpass = 10;
var englandfail = 60;
var englandsum = englandpass + englandfail;
var pieChartData = [
{ 'label': 'USA', 'value' : usasum, 'color': COLOR_RED },
{ 'label': 'ENGLAND', 'value' : englandsum, 'color': COLOR_ORANGE }
];
nv.addGraph(function() {
var pieChart = nv.models.pieChart()
.x(function(d) { return d.label })
.y(function(d) { return d.value })
.showLabels(true)
.labelThreshold(.05);
d3.select('#nv-pie-chartmy').append('svg')
.datum(pieChartData)
.transition().duration(350)
.call(pieChart);
return pieChart;
});
}
和我的 HTML 代码
<div id="nv-pie-chartmy" class="height-sm"></div>
目前,当鼠标悬停在一个切片上时,它会显示“USA 60”,如图所示。但我希望它显示如下
美国通过:20 失败:40
不显示全部计数。当前显示整个计数。任何想法如何显示它
解决方案
首先,您需要在pieChartData
变量中包含要显示的数据,如下所示:
var pieChartData = [
{ 'label': 'USA', 'value' : usasum, 'pass': usapass, 'fail': usafail, 'color': COLOR_RED },
{ 'label': 'ENGLAND', 'value' : englandsum, 'pass': englandpass, 'fail': englandfail, 'color': COLOR_ORANGE }
];
然后,您可以tooltipContent
在创建图表时使用该函数来访问和显示您想要的工具提示内容,例如:
var pieChart = nv.models.pieChart()
.x(function(d) { return d.label })
.y(function(d) { return d.value })
.showLabels(true)
.labelThreshold(.05)
.tooltipContent(function (label, val, nv_d) { return label + ' Pass: ' + nv_d.point.pass + ' Fail: ' + nv_d.point.fail } );
如果您想要更复杂的工具提示布局,您可以在tooltipContent
函数的返回值中包含 HTML。例如:
.tooltipContent(function (label, val, nv_d) { return '<h3>' + label + '</h3> Pass: ' + nv_d.point.pass + ' Fail: ' + nv_d.point.fail } );
资料来源:此 Stackoverflow 答案中的两个建议的组合
推荐阅读
- c++ - 如何将 VCL 组件从 Borland C++Builder 6 导入 Embarcadero C++Builder?
- typescript - 为什么只有在 else 里面时打字稿不抱怨没有回报?
- python - 如何告诉 argparse 只允许一个参数一次?
- c# - 为什么 .net 核心 Web API 在 IIS 上发布时会收到损坏的数据,但使用 VS Studio+IIS express 可以?
- java - Tomcat崩溃没有错误
- javascript - finalData 不是函数
- python - 在数据框中的第一个下划线之后从值创建新列
- reactjs - 反应 - 单击按钮后状态设置为 null
- git - 我在 GitHub 上收到“您无权推送用户名/存储库”
- npm - npm WARN 已弃用 uuid@3.4.0:请升级到版本 7 或更高版本