2015-02-18 1 views
3

В Rickshaw я хочу покрасить одну конкретную линию линии Y-оси, отличную от других линий линии Y-оси, при использовании оси Rickshaw.Graph.Axis.Y.Scaled. Я могу сделать это с помощью JQuery (в частности, 32 ° является линия я забочусь о):Как я могу поместить одну линию оси Y, отличную от других линий сетки?

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

Есть ли идиоматическое, лучше, или безопасный способ окраски определенной линии сетки-линии?

ответ

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') 
}