2016-04-08 3 views
1

У меня есть композитный Linechart.elasticX (правда) не работает dc.js

.elasticX (правда) не работает:/Может кто-то помочь мне

var composite = dc.compositeChart("#durationline-chart"); 
    composite.width(1500).height(350) 
     .group(Durations) 
     .brushOn(true) 
     .yAxisLabel("Duration") 
     .x(d3.scale.ordinal()) 
     .xUnits(dc.units.ordinal) 
     .margins({ top: 10, left: 50, right: 10, bottom: 50 }) 
     .elasticY(true) 
     .elasticX(true) 
     .renderlet(function(chart) { 
       chart.selectAll("g.x text") 
        .attr('transform', "rotate(+20)"); 
      }) 
     .compose([ 
      dc.lineChart(composite) 
       .group(Testcase_Time, "Time") 
       .colors('#1E90FF'), 
      dc.lineChart(composite) 
       .group(Testcase_Smartkey, "Smartkey") 
       .colors('red')]); 

EDIT: Вот jsfiddle: https://jsfiddle.net/gordonwoodhull/o9xx3fmm/

+0

Просьба предоставить более подробную информацию об этой ошибке. Любые сообщения? Чего вы хотите достичь? – manniL

+0

У меня есть другая диаграмма (Rowchart), и если я нажимаю на нее, я вижу только щелкнув тестовую таблицу на линейной диаграмме, которая крута, но xaxis будет большой, было бы круто, если ось будет динамичной, как ось Y. Знаете ли вы, что я имею в виду – Addy1992

+0

У меня нет ошибки ... Но ничего не происходит по оси X – Addy1992

ответ

2

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

Это потому, что crossfilter все еще возвращает ячейки, если они пусты - они просто имеют значение ноль. Таким образом, dc.js все еще обнаруживает домен всех ящиков, включая пустые.

Что вы можете сделать, это использовать поддельную группу, чтобы удалить пустые контейнеры

function remove_empty_bins(source_group) { 
    return { 
     all:function() { 
      return source_group.all().filter(function(d) { 
       return d.value != 0; 
      }); 
     } 
    }; 
} 


var filtered_group = remove_empty_bins(group); 

chart.dimension(dim) 
    .group(filtered_group) 
    ... 

Тогда dc.js обнаружит только область ненулевых значений. Подробнее in the FAQ.

Вы должны применить это ко всем группам, составляющим диаграмму.

+0

Я пробовал это раньше ... но это didint работа. Xaxis работает, но я не вижу никаких строк. – Addy1992

+0

Хорошо, это помогло бы, если бы вы упомянули об этом. Можете ли вы создать скрипку, показывающую проблему с этим подходом? Это может быть ошибка, или нам может понадобиться использовать следующий метод обхода (например, этот) (https://github.com/dc-js/dc.js/wiki/FAQ#combine-groups), который для стеков не композиты. – Gordon

+0

К сожалению, вы должны отфильтровать все группы, что очень раздражает, но, похоже, для меня это работает. Единственная проблема, которую я вижу, состоит в том, что в каждой строке есть только одна точка данных, поэтому нет линий для рисования, если только нули не включены. Когда я добавляю другую точку данных для каждой серии, я получаю диаграммы. (Есть некоторые раздражающие переходы из-за ошибок в dc.js, которые должны быть разрешены при выпуске версии 2.0.) – Gordon

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

  • Нет связанных вопросов^_^