2015-11-03 4 views
0

Мне интересно, может ли кто-нибудь помочь с проблемой, с которой я сталкиваюсь с NVD3, когда диаграмма изредка рисуется беспорядочно. Обычно это происходит, когда я использую переключатель для меток (т. Е. Где вы можете показывать или скрывать разные строки). Результатом является то, что выглядит как на рисунке ниже:При использовании линейных диаграмм NVD3 Erratically

enter image description here

Изначально схема выглядит нормально (т.е. одна строка). Однако после включения и отключения других строк на графике изображение заканчивается тем, что показано выше.

Любая помощь в отношении того, как обращаться с этим, была бы весьма признательна. Я не был уверен, что искать для описания проблемы, поэтому извиняюсь, если бы ответ был легко доступен.

+0

Можете ли вы разместить код для диаграммы? Предпочтительно в jsfiddle или что-то подобное. – johanj

ответ

0

В случае, если кто-то проходит через это (что на самом деле вряд ли) я разыскал вопрос к следующим добавляемых строк кода на «mouseover_line» событие (закомментированного ниже):

  function mouseover_line(evt) { 
      var yaxis = data[evt.seriesIndex].yAxis === 2 ? yAxis2 : yAxis1; 

      // evt.series.values[evt.pointIndex].x = d3.time.format('%x')(new Date(evt.point.x)); 
      // evt.series.values[evt.pointIndex].y = d3.format(',')(evt.point.y); 

      evt.value = evt.point.x; 
      evt.series = { 
       value: evt.point.y, 
       color: evt.point.color, 
       key: evt.series.key 
      }; 
      tooltip 
       .duration(0) 
       .valueFormatter(function(d, i) { 
        return yaxis.tickFormat()(d, i); 
       }) 
       .data(evt) 
       .hidden(false); 
     } 

я имел добавили эти строки, чтобы исправить наведение над метками для линейного графика (мои линейные графики имели ось x и datetime с целым числом по оси y). После добавления этих строк кажется, что дополнительное время обработки потребовало, чтобы строки рисовались стильно всякий раз, когда вы включаете/выключаете серию.

Не слишком уверен, что этот механизм вызывает проблему, но эти линии являются основной причиной.

Смежные вопросы