如何将一条不同于其他网格线的Y轴线着色?

时间:2015-02-18 17:08:00

标签: d3.js rickshaw

在人力车中,我想在使用Rickshaw.Graph.Axis.Y.Scaled轴时为一个特定的Y轴网格线着色,而不是其他Y轴网格线。我可以用jQuery做到这一点(特别是32°是我关心的行):

$('#container_id * svg * g[data-y-value=32] > line')
  .css('stroke','rgb(255,0,0)')
  .css('stroke-width','2')

是否有一种惯用的,更好的或更安全的着色特定线网格线的方法?

1 个答案:

答案 0 :(得分:1)

我有一些更惯用的东西,我在猴子修补渲染器和使用D3选择器:

var y_grid = new Rickshaw.Graph.Axis.Y.Scaled({
  graph: graph,
  tickFormat: Rickshaw.Fixtures.Number.formatKMBT,
  tickValues: y_tick_vals,
  scale: scale
});
// Begin monkey business
var old_render = y_grid.render
y_grid.render = function() {
  old_render.apply(y_grid,arguments)
  y_grid.graph.vis.select('svg .y_grid g[data-y-value="32"] line')
    .style('stroke','rgb(255,0,0)')
    .style('stroke-width','1')
}