我有一个人力车图,上面有多个数据系列(线图)

我决定在图形的底部具有鼠标悬停的详细信息以及范围滑块的预览-但是,当我将鼠标悬停在线条上方时,该细节始终只能“捕捉”到一行。如果我将范围滑块预览移开,则悬停细节效果很好。

有人知道怎么了吗?提前致谢。

程式码片段:

var graph = new Rickshaw.Graph( {
                    element: document.querySelector('#timeSeriesPlot_'+index),
                    series: chartData,
                    renderer: 'multi',
                    width: jQuery('.chartAndLegend').width()-100,
                    height: 500,
                    dotSize: 2
              });

var xAxis = new Rickshaw.Graph.Axis.Time( { graph: graph } );

var yAxis = new Rickshaw.Graph.Axis.Y( {
              graph: graph,
              orientation: 'left',
              element: document.querySelector('#y_axis_'+index)
          } );

var hoverDetail = new Rickshaw.Graph.HoverDetail( { graph: graph } );

var slider = new Rickshaw.Graph.RangeSlider.Preview({
                    graph: graph,
                    element: document.querySelector('#slider_'+index)
                  });

var legend = new Rickshaw.Graph.Legend({
                    graph: graph,
                    element: document.querySelector('#legend_'+index)
               });

var toggle = new Rickshaw.Graph.Behavior.Series.Toggle({
                graph: graph,
                legend: legend
              });

graph.render();


屏幕截图-我的鼠标实际上在顶部绿线上方

最佳答案

似乎人力车中的多重图默认情况下具有stack:true。这会使悬停详细信息位置偏离实际的图形线。它还会导致其他问题,例如not allowing multiple series with different numbers of points。要解决此问题,只需在Graph构造函数参数中设置stack:false,如下所示:

var graph = new Rickshaw.Graph( {
                    element: document.querySelector('#timeSeriesPlot_'+index),
                    series: chartData,
                    renderer: 'multi',
                    width: jQuery('.chartAndLegend').width()-100,
                    height: 500,
                    dotSize: 2,
                    stack: false
              });

09-12 00:51