如何将 class 添加到折线图中的每一行
How to add class to each line in linechart
我画了一个折线图我想给每条线一个动态class。
nv.addGraph(function() {
height = 450;
width = $(div).width() - 50;
chart = nv.models.lineWithFocusChart()
.width(width)
.height(height);
var svg = d3.select(div).append("svg")
.datum(chartsData)
.call(chart)
.style({
'width': width,
'height': height
})
数据:
data: {
values: formatedData,
key: key,
color: color,
class: '_class'
}
我已经通过了数据中的 class 但它没有选择这个...。
我想要每行 class
已编辑:
这就是我在行中添加 class 的方式。
在 nv.d3.js 中,我已将此功能更新为:
// Update Main (Focus)
var focusLinesWrap = g.select('.nv-focus .nv-linesWrap')
.datum(
data
.filter(function(d) {
return !d.disabled
})
.map(function(d, i) {
return {
key: d.key,
class: d.class,
circleClass: d.circleClass,
values: d.values.filter(function(d, i) {
return lines.x()(d, i) >= extent[0] && lines.x()(d, i) <= extent[1];
})
}
})
);
并在此处处理:
var groups = wrap.select('.nv-groups').selectAll('.nv-group')
groups
.attr('class', function(d, i) {
return d.class + ' nv-group nv-series-' + i
})
您无法像这样向数据组添加特定属性:
var groups = wrap.select('.nv-groups').selectAll('.nv-group');
groups.attr('class', function(d, i) {
return d.class + ' nv-group nv-series-' + i
});
像这样更改您的代码,它将正常工作:
var groups = wrap.select('.nv-groups').selectAll('.nv-group');
groups.each( function(d, i) {
d3.select(this).attr('class', d.class + ' nv-group nv-series-' + i);
});
其他类型的代码是:
var groups = wrap.select('.nv-groups').selectAll('.nv-group');
groups.each( function(d, i) {
d3.select(this).attr('class',function(){
return d.class + ' nv-group nv-series-' + i;
});
});
我画了一个折线图我想给每条线一个动态class。
nv.addGraph(function() {
height = 450;
width = $(div).width() - 50;
chart = nv.models.lineWithFocusChart()
.width(width)
.height(height);
var svg = d3.select(div).append("svg")
.datum(chartsData)
.call(chart)
.style({
'width': width,
'height': height
})
数据:
data: {
values: formatedData,
key: key,
color: color,
class: '_class'
}
我已经通过了数据中的 class 但它没有选择这个...。 我想要每行 class
已编辑: 这就是我在行中添加 class 的方式。 在 nv.d3.js 中,我已将此功能更新为:
// Update Main (Focus)
var focusLinesWrap = g.select('.nv-focus .nv-linesWrap')
.datum(
data
.filter(function(d) {
return !d.disabled
})
.map(function(d, i) {
return {
key: d.key,
class: d.class,
circleClass: d.circleClass,
values: d.values.filter(function(d, i) {
return lines.x()(d, i) >= extent[0] && lines.x()(d, i) <= extent[1];
})
}
})
);
并在此处处理:
var groups = wrap.select('.nv-groups').selectAll('.nv-group')
groups
.attr('class', function(d, i) {
return d.class + ' nv-group nv-series-' + i
})
您无法像这样向数据组添加特定属性:
var groups = wrap.select('.nv-groups').selectAll('.nv-group');
groups.attr('class', function(d, i) {
return d.class + ' nv-group nv-series-' + i
});
像这样更改您的代码,它将正常工作:
var groups = wrap.select('.nv-groups').selectAll('.nv-group');
groups.each( function(d, i) {
d3.select(this).attr('class', d.class + ' nv-group nv-series-' + i);
});
其他类型的代码是:
var groups = wrap.select('.nv-groups').selectAll('.nv-group');
groups.each( function(d, i) {
d3.select(this).attr('class',function(){
return d.class + ' nv-group nv-series-' + i;
});
});