Javascript 在dc.js中的鼠标悬停上显示其他数据属性
我想在dc.js中的鼠标悬停上显示其他数据标签和值(x轴和y轴除外)。下面是数据和图表代码Javascript 在dc.js中的鼠标悬停上显示其他数据属性,javascript,d3.js,dc.js,crossfilter,Javascript,D3.js,Dc.js,Crossfilter,我想在dc.js中的鼠标悬停上显示其他数据标签和值(x轴和y轴除外)。下面是数据和图表代码 var people = [ { "id": 1, "name": "Damaris", "gender": "Female", "DOB": "1973-02-18", "MaritalStatus": "false", "CreditCardType": "visa-electron" }, { "id": 2, "name"
var people = [
{
"id": 1,
"name": "Damaris",
"gender": "Female",
"DOB": "1973-02-18",
"MaritalStatus": "false",
"CreditCardType": "visa-electron"
},
{
"id": 2,
"name": "Barbe",
"gender": "Female",
"DOB": "1969-04-10",
"MaritalStatus": "true",
"CreditCardType": "americanexpress"
},
{
"id": 3,
"name": "Belia",
"gender": "Female",
"DOB": "1960-04-16",
"MaritalStatus": "false",
"CreditCardType": "maestro"
},
{
"id": 4,
"name": "Leoline",
"gender": "Female",
"DOB": "1995-01-19",
"MaritalStatus": "true",
"CreditCardType": "bankcard"
},
{
"id": 5,
"name": "Valentine",
"gender": "Female",
"DOB": "1992-04-16",
"MaritalStatus": "false",
"CreditCardType": ""
},
{
"id": 6,
"name": "Rosanne",
"gender": "Female",
"DOB": "1985-01-05",
"MaritalStatus": "true",
"CreditCardType": "bankcard"
},
{
"id": 7,
"name": "Shalna",
"gender": "Female",
"DOB": "1956-11-01",
"MaritalStatus": "false",
"CreditCardType": "jcb"
},
{
"id": 8,
"name": "Mordy",
"gender": "Male",
"DOB": "1990-03-27",
"MaritalStatus": "true",
"CreditCardType": "china-unionpay"
},
{
"id": 9,
"name": "Tristan",
"gender": "Male",
"DOB": "1998-10-05",
"MaritalStatus": "true",
"CreditCardType": ""
},
{
"id": 10,
"name": "Alphonso",
"gender": "Male",
"DOB": "1992-08-10",
"MaritalStatus": "false",
"CreditCardType": "mastercard"
},
{
"id": 11,
"name": "Hirsch",
"gender": "Male",
"DOB": "1973-02-13",
"MaritalStatus": "false",
"CreditCardType": ""
},
{
"id": 12,
"name": "Kirstyn",
"gender": "Female",
"DOB": "1989-06-28",
"MaritalStatus": "false",
"CreditCardType": "bankcard"
},
{
"id": 13,
"name": "Benson",
"gender": "Male",
"DOB": "1959-10-19",
"MaritalStatus": "true",
"CreditCardType": "switch"
},
{
"id": 14,
"name": "Florry",
"gender": "Female",
"DOB": "1993-11-11",
"MaritalStatus": "true",
"CreditCardType": "diners-club-international"
},
{
"id": 15,
"name": "Jenine",
"gender": "Female",
"DOB": "1957-02-16",
"MaritalStatus": "false",
"CreditCardType": "diners-club-enroute"
},
{
"id": 16,
"name": "Hortense",
"gender": "Female",
"DOB": "1993-12-17",
"MaritalStatus": "false",
"CreditCardType": "jcb"
},
{
"id": 17,
"name": "Zulema",
"gender": "Female",
"DOB": "1990-09-27",
"MaritalStatus": "false",
"CreditCardType": "jcb"
},
{
"id": 18,
"name": "Leoline",
"gender": "Female",
"DOB": "1990-02-02",
"MaritalStatus": "false",
"CreditCardType": "visa-electron"
},
{
"id": 19,
"name": "Bayard",
"gender": "Male",
"DOB": "1997-01-11",
"MaritalStatus": "false",
"CreditCardType": "jcb"
},
{
"id": 20,
"name": "Joanne",
"gender": "Female",
"DOB": "1996-02-01",
"MaritalStatus": "false",
"CreditCardType": "maestro"
},
{
"id": 21,
"name": "Marlee",
"gender": "Female",
"DOB": "1994-11-28",
"MaritalStatus": "false",
"CreditCardType": ""
},
{
"id": 22,
"name": "Mitchell",
"gender": "Male",
"DOB": "1993-03-09",
"MaritalStatus": "false",
"CreditCardType": "maestro"
},
{
"id": 23,
"name": "Jefferey",
"gender": "Male",
"DOB": "1999-09-19",
"MaritalStatus": "false",
"CreditCardType": "jcb"
},
{
"id": 24,
"name": "Jolee",
"gender": "Female",
"DOB": "1951-04-14",
"MaritalStatus": "false",
"CreditCardType": "jcb"
},
{
"id": 25,
"name": "Selma",
"gender": "Female",
"DOB": "1958-08-14",
"MaritalStatus": "false",
"CreditCardType": "mastercard"
},
{
"id": 26,
"name": "Pavlov",
"gender": "Male",
"DOB": "1971-12-24",
"MaritalStatus": "true",
"CreditCardType": "jcb"
},
{
"id": 27,
"name": "Willi",
"gender": "Male",
"DOB": "1999-09-29",
"MaritalStatus": "false",
"CreditCardType": "diners-club-enroute"
},
{
"id": 28,
"name": "Vi",
"gender": "Female",
"DOB": "1988-09-25",
"MaritalStatus": "false",
"CreditCardType": "laser"
},
{
"id": 29,
"name": "Teodoro",
"gender": "Male",
"DOB": "1969-03-02",
"MaritalStatus": "false",
"CreditCardType": "jcb"
},
{
"id": 30,
"name": "Loralyn",
"gender": "Female",
"DOB": "1953-11-27",
"MaritalStatus": "false",
"CreditCardType": ""
}
]
var chart = dc.lineChart('#line');
var mycrossfilter = crossfilter(people);
var ageDimension = mycrossfilter.dimension(function(data) {
return [~~((Date.now() - new Date(data.DOB)) / (31557600000))]
});
var ageGroup = ageDimension.group().reduceCount();
chart
.width(800)
.height(300)
.x(d3.scale.linear().domain([15,70]))
.brushOn(false)
.yAxisLabel("Count")
.xAxisLabel("Age")
.dimension(ageDimension)
.group(ageGroup) ;
chart.render();
工作示例可在以下url中找到:
当我将鼠标移到交点(x轴和y轴的点)上时,我希望工具提示信息以标签:值格式显示所有属性(例如:名称:Damaris,性别:Male,Id:1)。另外,我想改变鼠标上方提示的颜色(作为突出显示)。
我使用了title()、工具提示、d3提示,但无法获得所需的输出
有人可以帮忙吗。您将为您的身体和svg画布中的圆圈添加一个事件处理程序:
d3.select('body').on('mouseover', function() {
d3.selectAll('circle.dot')
.on("mouseover", function(d) {
div.transition()
.duration(200)
.style("opacity", .9);
div.html(d) // Here is the output of the data
.style("left", (d3.event.pageX) + "px")
.style("top", (d3.event.pageY - 28) + "px");
})
.on("mouseout", function(d) {
div.transition()
.duration(500)
.style("opacity", 0);
});
});
然后必须添加工具提示并将其附加到正文:
var div = d3.select("body").append("div")
.attr("class", "tooltip")
.style("opacity", 0);
最后但并非最不重要的是,这里有一个工具提示样式的示例:
div.tooltip {
position: absolute;
text-align: center;
width: 60px;
height: 28px;
padding: 2px;
font: 12px sans-serif;
background: rebecca;
border: 0px;
border-radius: 8px;
pointer-events: none;
}
现在你有了一个有效的工具提示,但你的问题是圆圈内缺少数据。你有没有尝试用左边的数据来丰富你的观点
基于您的小提琴的工作示例: